示例#1
0
        public override TaskStatus OnUpdate()
        {
            var go       = basegameObject.Value.gameObject;
            var goTarget = targetObject.Value;

            if (previousGo.Value != go)
            {
                lastRotation    = go.transform.rotation;
                desiredRotation = lastRotation;
                previousGo      = go;
            }


            // desired look at position

            Vector3 lookAtPos;

            if (goTarget != null)
            {
                lookAtPos = !targetPosition.IsNone ?
                            goTarget.transform.TransformPoint(targetPosition.Value) :
                            goTarget.transform.position;
            }
            else
            {
                lookAtPos = targetPosition.Value;
            }

            if (keepVertical.Value)
            {
                lookAtPos.y = go.transform.position.y;
            }

            // smooth look at

            var diff = lookAtPos - go.transform.position;

            if (diff != Vector3.zero && diff.sqrMagnitude > 0)
            {
                desiredRotation = Quaternion.LookRotation(diff, upVector.IsNone ? Vector3.up : upVector.Value);
            }

            lastRotation          = Quaternion.Slerp(lastRotation.Value, desiredRotation.Value, speed.Value * Time.deltaTime);
            go.transform.rotation = lastRotation.Value;

            // send finish event?

            if (successOnFinish.Value == true)
            {
                var targetDir = lookAtPos - go.transform.position;
                var angle     = Vector3.Angle(targetDir, go.transform.forward);

                if (Mathf.Abs(angle) <= finishTolerance.Value)
                {
                    return(TaskStatus.Success);
                }
            }
            return(TaskStatus.Running);
        }
示例#2
0
 public override TaskStatus OnUpdate()
 {
     if (this.rigidbody == null)
     {
         Debug.LogWarning("Rigidbody is null");
         return(TaskStatus.Failure);
     }
     this.rigidbody.rotation = this.rotation.Value;
     return(TaskStatus.Success);
 }
示例#3
0
 public override TaskStatus OnUpdate()
 {
     if (this.targetTransform == null)
     {
         Debug.LogWarning("Transform is null");
         return(TaskStatus.Failure);
     }
     this.targetTransform.rotation = this.rotation.Value;
     return(TaskStatus.Success);
 }
示例#4
0
 public override void OnReset()
 {
     targetGameObject = null;
     matchPosition = Vector3.zero;
     matchRotation = Quaternion.identity;
     targetBodyPart = AvatarTarget.Root;
     weightMaskPosition = Vector3.zero;
     weightMaskRotation = 0;
     startNormalizedTime = 0;
     targetNormalizedTime = 1;
 }
示例#5
0
 public virtual void OnReset()
 {
     this.targetGameObject     = (SharedGameObject)null;
     this.matchPosition        = (SharedVector3)Vector3.get_zero();
     this.matchRotation        = (SharedQuaternion)Quaternion.get_identity();
     this.targetBodyPart       = (AvatarTarget)0;
     this.weightMaskPosition   = Vector3.get_zero();
     this.weightMaskRotation   = 0.0f;
     this.startNormalizedTime  = 0.0f;
     this.targetNormalizedTime = 1f;
 }
示例#6
0
 public override void OnReset()
 {
     targetGameObject     = null;
     matchPosition        = Vector3.zero;
     matchRotation        = Quaternion.identity;
     targetBodyPart       = AvatarTarget.Root;
     weightMaskPosition   = Vector3.zero;
     weightMaskRotation   = 0;
     startNormalizedTime  = 0;
     targetNormalizedTime = 1;
 }
 public virtual void OnReset()
 {
     this.fromDirection = this.toDirection = (SharedVector3)Vector3.get_zero();
     this.storeResult   = (SharedQuaternion)Quaternion.get_identity();
 }
示例#8
0
 public override void OnReset()
 {
     targetGameObject = null;
     position = Vector3.zero;
     rotation = Quaternion.identity;
 }
示例#9
0
 public override void OnReset()
 {
     targetGameObject = null;
     rotation = Quaternion.identity;
 }
 public virtual void OnReset()
 {
     this.targetGameObject = (SharedGameObject)null;
     this.storeValue       = (SharedQuaternion)Quaternion.get_identity();
 }
示例#11
0
 public override void OnReset()
 {
     targetGameObject = null;
     storeValue       = Quaternion.identity;
 }
示例#12
0
 public override void OnReset()
 {
     this.targetValue    = Quaternion.identity;
     this.targetVariable = Quaternion.identity;
 }
示例#13
0
 public override void OnReset()
 {
     targetQuaternion = storeResult = Quaternion.identity;
 }
示例#14
0
 public override void OnReset()
 {
     this.forwardVector = Vector3.zero;
     this.storeResult   = Quaternion.identity;
 }
示例#15
0
 public virtual void OnReset()
 {
     this.storeResult = (SharedQuaternion)Quaternion.get_identity();
 }
 public override void OnReset()
 {
     firstRotation = secondRotation = Quaternion.identity;
     storeResult   = 0;
 }
 public override void OnReset()
 {
     this.fromDirection = (this.toDirection = Vector3.zero);
     this.storeResult   = Quaternion.identity;
 }
示例#18
0
 public virtual void OnReset()
 {
     this.fromQuaternion = this.toQuaternion = this.storeResult = (SharedQuaternion)Quaternion.get_identity();
     this.amount         = (SharedFloat)0.0f;
 }
示例#19
0
 public override void OnReset()
 {
     degrees     = 0;
     axis        = Vector3.zero;
     storeResult = Quaternion.identity;
 }
示例#20
0
 public override void OnReset()
 {
     targetValue = Quaternion.identity;
     targetVariable = Quaternion.identity;
 }
示例#21
0
 public override void OnReset()
 {
     leftRotation = rightRotation = Quaternion.identity;
     storeResult  = 0;
 }
示例#22
0
 public override void OnReset()
 {
     firstRotation = secondRotation = Quaternion.identity;
     storeResult = 0;
 }
 public override void OnReset()
 {
     this.variable  = Quaternion.identity;
     this.compareTo = Quaternion.identity;
 }
示例#24
0
 public override void OnReset()
 {
     this.leftRotation = (this.rightRotation = Quaternion.identity);
     this.storeResult  = 0f;
 }
示例#25
0
 public override void OnReset()
 {
     this.fromQuaternion  = (this.toQuaternion = (this.storeResult = Quaternion.identity));
     this.maxDeltaDegrees = 0f;
 }
示例#26
0
 public override void OnReset()
 {
     fromQuaternion = toQuaternion = storeResult = Quaternion.identity;
     maxDeltaDegrees = 0;
 }
示例#27
0
 public override void OnReset()
 {
     fromDirection = toDirection = Vector3.zero;
     storeResult = Quaternion.identity;
 }
示例#28
0
 public override void OnReset()
 {
     degrees = 0;
     axis = Vector3.zero;
     storeResult = Quaternion.identity;
 }
示例#29
0
文件: Identity.cs 项目: dev-celvin/DK
 public override void OnReset()
 {
     storeResult = Quaternion.identity;
 }
示例#30
0
 public override void OnReset()
 {
     leftRotation = rightRotation = Quaternion.identity;
     storeResult = 0;
 }
示例#31
0
 public override void OnReset()
 {
     targetGameObject = null;
     storeValue = Quaternion.identity;
 }
示例#32
0
 public override void OnReset()
 {
     this.targetQuaternion = (this.storeResult = Quaternion.identity);
 }
示例#33
0
文件: Lerp.cs 项目: chichichap/Unity
 public override void OnReset()
 {
     fromQuaternion = toQuaternion = storeResult = Quaternion.identity;
     amount         = 0;
 }
示例#34
0
 public override void OnReset()
 {
     this.degrees     = 0f;
     this.axis        = Vector3.zero;
     this.storeResult = Quaternion.identity;
 }
 public override void OnReset()
 {
     fromDirection = toDirection = Vector3.zero;
     storeResult   = Quaternion.identity;
 }
 public override void OnReset()
 {
     variable = Quaternion.identity;
     compareTo = Quaternion.identity;
 }
示例#37
0
 public override void OnReset()
 {
     targetGameObject = null;
     rotation         = Quaternion.identity;
 }
 public virtual void OnReset()
 {
     this.variable  = (SharedQuaternion)Quaternion.get_identity();
     this.compareTo = (SharedQuaternion)Quaternion.get_identity();
 }
示例#39
0
 public override void OnReset()
 {
     eulerVector = Vector3.zero;
     storeResult = Quaternion.identity;
 }
示例#40
0
 public override void OnReset()
 {
     eulerVector = Vector3.zero;
     storeResult = Quaternion.identity;
 }
示例#41
0
文件: Slerp.cs 项目: dev-celvin/DK
 public override void OnReset()
 {
     fromQuaternion = toQuaternion = storeResult = Quaternion.identity;
     amount = 0;
 }
示例#42
0
 public override void OnReset()
 {
     this.targetGameObject = null;
     this.position         = Vector3.zero;
     this.rotation         = Quaternion.identity;
 }
示例#43
0
 public virtual void OnReset()
 {
     this.degrees     = (SharedFloat)0.0f;
     this.axis        = (SharedVector3)Vector3.get_zero();
     this.storeResult = (SharedQuaternion)Quaternion.get_identity();
 }
示例#44
0
 public override void OnReset()
 {
     this.firstRotation = (this.secondRotation = Quaternion.identity);
     this.storeResult   = 0f;
 }