private void SceneNode_TransformChanged(object sender, TransformArgs e)
        {
            //only do this when the change came from an external source
            if (isCaptured)
            {
                return;
            }

            UpdateMatrixFromTarget();
        }
示例#2
0
        private void OnTransformChanged(object sender, TransformArgs e)
        {
            var oldBound = BoundsWithTransform;

            BoundsWithTransform = Bounds.Transform(e);
            RaiseOnTransformBoundChanged(BoundsWithTransform, oldBound);
            var oldSphere = BoundsSphereWithTransform;

            BoundsSphereWithTransform = BoundsSphere.TransformBoundingSphere(e);
            RaiseOnTransformBoundSphereChanged(BoundsSphereWithTransform, oldSphere);
        }
示例#3
0
        private void SceneNode_OnTransformChanged(object sender, TransformArgs e)
        {
            var m = e.Transform;

            m.Decompose(out Vector3 scale, out Quaternion rotation, out Vector3 translation);
            scaleMatrix       = Matrix.Scaling(scale);
            rotationMatrix    = Matrix.RotationQuaternion(rotation);
            translationVector = translation;
            OnUpdateSelfTransform();
            //OnUpdateTargetMatrix();
        }
示例#4
0
        /// <summary>
        /// Обработчик события убийства врага, принимает на вход Transform
        /// Это обходное решение проблемы, что при убийстве врага, не срабатывает OnCollisionEnter и урон продолжает наноситься
        /// </summary>
        /// <param name="args">Аргумент события</param>
        private void EnemyTransformHandler(TransformArgs args)
        {
            var enemy = args.TransformArg.gameObject.GetComponent <EnemyCore>();

            Coroutine cor;

            _takenDamageFrom.TryGetValue(enemy, out cor);

            if (cor != null)
            {
                StopCoroutine(cor);
                _takenDamageFrom.Remove(enemy);
            }
        }
        private void SceneNode_OnTransformChanged(object sender, TransformArgs e)
        {
            var m = e.Transform;

            m.Decompose(out Vector3 scale, out Quaternion rotation, out Vector3 translation);
            scaleMatrix    = Matrix.Scaling(scale);
            rotationMatrix = Matrix.RotationQuaternion(rotation);
            if (centerOffset != Vector3.Zero)
            {
                var org = Matrix.Translation(-centerOffset) * scaleMatrix * rotationMatrix * Matrix.Translation(centerOffset);
                translationVector = translation - org.TranslationVector;
            }
            else
            {
                translationVector = m.TranslationVector;
            }
            OnUpdateSelfTransform();
            //OnUpdateTargetMatrix();
        }
示例#6
0
 /// <summary>
 /// Обработчик события создания игрока, в качестве аргумента получает его Transform
 /// </summary>
 private void PlayerSpawnedHandler(TransformArgs args)
 {
     _target = args.TransformArg;
 }
 private void OnTransformChanged(object sender, TransformArgs e)
 {
     BoundsWithTransform       = Bounds.Transform(e);
     BoundsSphereWithTransform = BoundsSphere.TransformBoundingSphere(e);
 }
示例#8
0
 private void BatchedMeshNode_OnTransformChanged(object sender, TransformArgs e)
 {
     UpdateBoundsWithTransform();
 }
 /// <summary>
 /// Обработчик события создания игрока, в качестве аргумента получаего его Transform
 /// </summary>
 /// <param name="args"></param>
 private void PlayerTransformHandler(TransformArgs args)
 {
     _tankTransform = args.TransformArg;
 }