前提・実現したいこと
Unity 2019.3.6f1 Wondows10 にて開発を行っています。
Unity、C#初心者です。
実現したいことは以下の3点です。
1. オブジェクトにマウスオンすることでオブジェクトを移動させる
2. マウスオフするとオブジェクトを元の位置に戻す
3. オブジェクトをクリックすると移動した位置(元の位置ではない)で固定される
それを実現するために1・2(スクリプト名:Movement)と3(スクリプト名:Kotei)でスクリプトを分割し、以下のようなスクリプトを記述しました。
スクリプト通り動き、オブジェクトをクリックした際には”OnMouseDown”のアラートとMovementのスクリプトがoffになります(Movementのスクリプトのチェックボックスが外れる)。しかし、オブジェクトからマウスを外してしまうと(マウスオフすると)Movementのスクリプト内容が実行され、元の場所に戻ってしまします。なぜでしょうか。考え方からまずいのでしょうか。わかる方いらっしゃいましたら宜しくお願い致します。
<1・2>=スクリプト名:Movement
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Movement : MonoBehaviour 6{ 7 8 // Start is called before the first frame update 9 void Start() 10 { 11 12 } 13 14 // Update is called once per frame 15 void Update() 16 { 17 18 } 19 20 public void Touch() 21 { 22 transform.position = new Vector3 (20, 0, 20); 23 } 24 25 public void UnTouch() 26 { 27 transform.position = new Vector3 (0, 0, 0); 28 } 29 30 31} 32
<3>=スクリプト名:Kotei
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Kotei : MonoBehaviour 6{ 7 // Start is called before the first frame update 8 void Start() 9 { 10 11 } 12 13 // Update is called once per frame 14 void Update() 15 { 16 17 } 18 19 public void Click() 20 { 21 transform.position = new Vector3 (20, 0, 20); 22 Debug.Log("OnMouseDown"); 23 gameObject.GetComponent<Movement>().enabled = false; 24 } 25 26 27 28 29} 30
発生している問題・エラーメッセージ
エラーメッセージは表示されていません。 スクリプト通り動き、オブジェクトをクリックした際には”OnMouseDown”のアラートとMovementのスクリプトがoffになります(Movementのスクリプトのチェックボックスが外れる)。しかし、オブジェクトからマウスを外してしまうと(マウスオフすると)Movementのスクリプト内容が実行され、元の場所に戻ってしまします。
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/27 04:05