protected override void Update() { base.Update(); var navMesh = GetComponent <NavMeshAgent>(); if (navMesh) { var ownPosition = transform.position; var ownRotation = transform.rotation; if (head) { head.transform.position = new Vector3(ownPosition.x, head.transform.position.y, ownPosition.z); // head.transform.rotation = ownRotation; head.CalculateBounds(); } if (bodyParts != null) { foreach (var bodyPart in bodyParts) { if (!bodyPart) { continue; } bodyPart.transform.position = new Vector3(ownPosition.x, bodyPart.transform.position.y, ownPosition.z); // bodyPart.transform.rotation = ownRotation; bodyPart.CalculateBounds(); } } } }
protected override void Update() { base.Update(); var ownPosition = transform.position; var ownRotation = transform.rotation; if (prevY == 0.0f) { prevY = ownRotation.y; } if (head) { head.transform.position = new Vector3( ownPosition.x, head.transform.position.y + ownPosition.y - prevY, ownPosition.z ); head.transform.rotation = ownRotation; head.CalculateBounds(); } if (bodyParts != null) { foreach (var bodyPart in bodyParts) { if (!bodyPart) { continue; } bodyPart.transform.position = new Vector3( ownPosition.x, bodyPart.transform.position.y + ownPosition.y - prevY, ownPosition.z ); if (!bodyPart.aiming && !bodyPart.GetStateController().chaseTarget) { bodyPart.SetAimRotation(ownRotation); } bodyPart.CalculateBounds(); } } prevY = ownPosition.y; }