Esempio n. 1
0
        public void OnUpdate(IBulletController controller)
        {
            if (axis == Vector3.zero)
            {
                BulletStormLogger.LogErrorOnce($"{controller}: In Around axis module, axis can't be zero!");
                return;
            }

            Vector3 axisInWorld;

            switch (space)
            {
            case Space.World:
                axisInWorld = axis;
                break;

            case Space.Self:
                axisInWorld = controller.Rotation * axis;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            var angle = anglePerSecond * Time.deltaTime;

            controller.ChangeParam(param =>
            {
                param.rotation = Quaternion.AngleAxis(angle, axisInWorld) * param.rotation;
                return(param);
            });
        }