| | |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | |
| | | namespace vnxbqy.UI { |
| | | public class PingPongMove:MonoBehaviour { |
| | | public class PingPongMove:MonoBehaviour { |
| | | |
| | | public Transform reference; |
| | | public Vector3 amplitue; |
| | | public float speed; |
| | | public Transform reference; |
| | | public Vector3 amplitue; |
| | | public float speed; |
| | | |
| | | Vector3 referencePos = Vector3.zero; |
| | | Vector3 referencePos = Vector3.zero; |
| | | |
| | | void OnEnable() { |
| | | referencePos = reference == null ? this.transform.localPosition : reference.localPosition; |
| | | } |
| | | |
| | | float x = 0f; |
| | | float y = 0f; |
| | | float z = 0f; |
| | | void LateUpdate() { |
| | | |
| | | if(Mathf.Abs(amplitue.x) > 0.001f) { |
| | | x = referencePos.x - amplitue.x * 0.5f + Mathf.PingPong(Time.time * speed,amplitue.x); |
| | | } |
| | | else { |
| | | x = referencePos.x; |
| | | } |
| | | |
| | | if(Mathf.Abs(amplitue.y) > 0.001f) { |
| | | y = referencePos.y - amplitue.y * 0.5f + Mathf.PingPong(Time.time * speed,amplitue.y); |
| | | } |
| | | else { |
| | | y = referencePos.y; |
| | | } |
| | | |
| | | if(Mathf.Abs(amplitue.z) > 0.001f) { |
| | | z = referencePos.z - amplitue.z * 0.5f + Mathf.PingPong(Time.time * speed,amplitue.z); |
| | | } |
| | | else { |
| | | z = referencePos.z; |
| | | } |
| | | |
| | | this.transform.localPosition = new Vector3(x,y,z); |
| | | } |
| | | |
| | | void OnEnable() { |
| | | referencePos = reference == null ? this.transform.localPosition : reference.localPosition; |
| | | } |
| | | |
| | | float x = 0f; |
| | | float y = 0f; |
| | | float z = 0f; |
| | | void LateUpdate() { |
| | | |
| | | if(Mathf.Abs(amplitue.x) > 0.001f) { |
| | | x = referencePos.x - amplitue.x * 0.5f + Mathf.PingPong(Time.time * speed,amplitue.x); |
| | | } |
| | | else { |
| | | x = referencePos.x; |
| | | } |
| | | |
| | | if(Mathf.Abs(amplitue.y) > 0.001f) { |
| | | y = referencePos.y - amplitue.y * 0.5f + Mathf.PingPong(Time.time * speed,amplitue.y); |
| | | } |
| | | else { |
| | | y = referencePos.y; |
| | | } |
| | | |
| | | if(Mathf.Abs(amplitue.z) > 0.001f) { |
| | | z = referencePos.z - amplitue.z * 0.5f + Mathf.PingPong(Time.time * speed,amplitue.z); |
| | | } |
| | | else { |
| | | z = referencePos.z; |
| | | } |
| | | |
| | | this.transform.localPosition = new Vector3(x,y,z); |
| | | } |
| | | |
| | | } |