前提・実現したいこと
Unity2Dで2Dアクションゲームを作成しています。
マウスをクリックしたらその方向にクナイが真っ直ぐ飛んでいくようにしたいです。
※プレハブからコピーを作成するのではなくこのオブジェクト本体を飛ばしたいです。
発生している問題・エラーメッセージ
c#
1Assets\Scripts\HookManager.cs(43,34): error CS1955: Non-invocable member 'Vector2' cannot be used like a method.
Assets\Scripts\HookManager.cs(12,17): warning CS0108: 'HookManager.rigidbody2D' hides inherited member 'Component.rigidbody2D'. Use the new keyword if hiding was intended.
Assets\Scripts\HimoManager.cs(26,9): warning CS0618: 'LineRenderer.SetColors(Color, Color)' is obsolete: 'Use startColor, endColor or colorGradient instead.'
Assets\Scripts\PlayerManager.cs(84,9): warning CS0162: Unreachable code detected
Assets\Scripts\PlayerManager.cs(7,32): warning CS0649: Field 'PlayerManager.blockLayer' is never assigned to, and will always have its default value
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class HookManager : MonoBehaviour 6{ 7 [SerializeField] Transform Player; 8 9 Vector3 prev; 10 FixedJoint2D fixedJoint2D; 11 Rigidbody2D ita; 12 Rigidbody2D rigidbody2D; 13 14 float speed; 15 16 void Start() 17 { 18 rigidbody2D = GetComponent<Rigidbody2D>(); 19 fixedJoint2D = GetComponent<FixedJoint2D>(); 20 ita = GameObject.Find("Ita Portrait").GetComponent<Rigidbody2D>(); 21 GetComponent<FixedJoint2D>().enabled = false; 22 speed = 10.0f; //クナイの速度 23 } 24 25 private void OnTriggerEnter2D(Collider2D collision) 26 { 27 if (collision.gameObject.tag == "Ita Portrait") 28 { 29 Debug.Log("クナイが刺さった"); 30 fixedJoint2D.connectedBody = ita; 31 GetComponent<FixedJoint2D>().enabled = true; 32 } 33 } 34 35 void Update() 36 { 37 var pos = Camera.main.WorldToScreenPoint(transform.localPosition); 38 var rotation = Quaternion.LookRotation(Vector3.forward, Input.mousePosition - pos); 39 40 if (Input.GetMouseButtonDown(0)) 41 { 42 transform.localRotation = rotation; //ここでクナイの向きを変える 43 rigidbody2D.AddForce(Vector2(rotation) * speed, ForceMode2D.Impulse); //ここでマウスの方向に力を加える 44 Debug.Log(rotation); 45 } 46 } 47 48 bool throwing() 49 { 50 return false; 51 } 52}
初心者なので色んなサイトのコードを繋げて書いています。そのため、ぐちゃぐちゃなコードになっていると思います。
マウスの座標のデータの扱いが理解できていないくて対処ができないため、質問させていただきます。
補足情報(FW/ツールのバージョンなど)
Unity:2019.3.12
回答2件
あなたの回答
tips
プレビュー