Unityです。次のスクリプトにてオフセットを使用したいのですがどう修正すればよいでしょうか。
回答よろしくお願いいたします。
※オフセットとはTransform objectToUse;のスタート位置のオフセットです。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4// © 2017 TheFlyingKeyboard 5// theflyingkeyboard.net 6//Moves object between two points 7public class MoveBetweenTwoPoints : MonoBehaviour { 8 [SerializeField] private float moveSpeed; 9 [SerializeField] private GameObject pointA; 10 [SerializeField] private GameObject pointB; 11 [SerializeField] private bool reverseMove = false; 12 [SerializeField] private Transform objectToUse; 13 [SerializeField] private bool moveThisObject = false; 14 private float startTime; 15 private float journeyLength; 16 private float distCovered; 17 private float fracJourney; 18 void Start() 19 { 20 startTime = Time.time; 21 if (moveThisObject) 22 { 23 objectToUse = transform; 24 } 25 journeyLength = Vector3.Distance(pointA.transform.position, pointB.transform.position); 26 } 27 void Update() 28 { 29 distCovered = (Time.time - startTime) * moveSpeed; 30 fracJourney = distCovered / journeyLength; 31 if (reverseMove) 32 { 33 objectToUse.position = Vector3.Lerp(pointB.transform.position, pointA.transform.position, fracJourney); 34 } 35 else 36 { 37 objectToUse.position = Vector3.Lerp(pointA.transform.position, pointB.transform.position, fracJourney); 38 } 39 if ((Vector3.Distance(objectToUse.position, pointB.transform.position) == 0.0f || Vector3.Distance(objectToUse.position, pointA.transform.position) == 0.0f)) //Checks if the object has travelled to one of the points 40 { 41 if (reverseMove) 42 { 43 reverseMove = false; 44 } 45 else 46 { 47 reverseMove = true; 48 } 49 startTime = Time.time; 50 } 51 } 52}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/31 02:14
2017/12/31 03:03 編集
2017/12/31 03:13
2017/12/31 05:10