Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

【ECS架构Entitas入门及三消案例实现(Unity 2017.3)】飞机旋转角度问题
长蘑菇的马铃薯发起了问答2020-12-15
1
回复
451
浏览
public class ChangeRotationSystem : ReactiveSystem<GameEntity>
    {
        public ChangeRotationSystem(Contexts context) : base(context.game)
        {
        }

        protected override void Execute(List<GameEntity> entities)
        {
            foreach (GameEntity entity in entities)
            {
                Transform trans = entity.interactionDemoView.transform;
                var angle = entity.interactionDemoMoveDirection.direction;
                trans.rotation = Quaternion.AngleAxis(angle-90, Vector3.forward);// 问题行
            }
        }

        protected override bool Filter(GameEntity entity)
        {
            return entity.hasInteractionDemoView &&
                entity.hasInteractionDemoMoveDirection;
        }

        protected override ICollector<GameEntity> GetTrigger(IContext<GameEntity> context)
        {
            return context.CreateCollector(GameMatcher.InteractionDemoMoveDirection);
        }
    }

代码块中的问题行trans.rotation = Quaternion.AngleAxis(angle-90, Vector3.forward),为什么这里angle要减去90?我在课中得知angle计算出来就是应该飞机应该旋转的正确角度,自己试验不减90的话,飞机头确实不会朝向目标坐标,但是减去90又不知道为什么,麻烦老师解答,感谢

所有回复
  • 老师_Trigger • 2020-12-17

    同学你好,这个项目老师具体没有做不是很清楚,可能是由于模型朝向的问题,如果不减的话模型对不上本身的正前方,会导致模型其他位置对着某个方向移动

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!