http://hoge465.seesaa.net/article/421400008.html
こちらのサイトを参考に、パネルに下記のスクリプトをアタッチしたのですが、ボタンUI
のOnClick()の部分にパネルオブジェクトを入れ、functionでSlideInとSlideOutを設定したものをそれぞれ作ったのですが、SlideOut()しか動きません。どのように実装すれば正しく使えるのか教えていただけましたら幸いです。
C#
1using UnityEngine; 2using UnityEngine.UI; 3using System.Collections; 4 5public class PanelSlider : MonoBehaviour { 6 public AnimationCurve animCurve = AnimationCurve.Linear(0, 0, 1, 1); 7 public Vector3 inPosition; // スライドイン後の位置 8 public Vector3 outPosition; // スライドアウト後の位置 9 public float duration = 1.0f; // スライド時間(秒) 10 11 // スライドイン(Pauseボタンが押されたときに、これを呼ぶ) 12 public void SlideIn(){ 13 StartCoroutine( StartSlidePanel(true) ); 14 } 15 16 // スライドアウト 17 public void SlideOut(){ 18 StartCoroutine( StartSlidePanel(false) ); 19 } 20 21 private IEnumerator StartSlidePanel( bool isSlideIn ){ 22 float startTime = Time.time; // 開始時間 23 Vector3 startPos = transform.localPosition; // 開始位置 24 Vector3 moveDistance; // 移動距離および方向 25 26 if( isSlideIn ) 27 moveDistance = (inPosition - startPos); 28 else{ 29 moveDistance = (outPosition - startPos); 30 31 while((Time.time - startTime) < duration){ 32 transform.localPosition = startPos + moveDistance * animCurve.Evaluate((Time.time - startTime) / duration); 33 yield return 0; // 1フレーム後、再開 34 } 35 transform.localPosition = startPos + moveDistance; 36 } 37} 38}
回答1件
あなたの回答
tips
プレビュー