子オブジェクトのコンポーネントを取得したいのですがうまくいきません
unityで敵オブジェクトに武器(enemyattack)を持たせてその武器に当たったらプレイヤーオブジェクトが持つint値Playerattackに武器の攻撃力が代入されてプレイヤーがもつint値HPにPlayerattackに代入された攻撃力の値に応じてHPの値が引かれていくというシンプルなコードを書いているのですが、武器オブジェクトを親にすれば以下のコードでうまく動作したのですが
プレイヤー側のスクリプトです↓↓この部分のコードは武器オブジェクトが親のままならうまくいきました。
Playerattack = GameObject.Find("武器の名前").GetComponent<武器のスクリプト名>().enemyattack;
HP = HP - Playerattack;
武器側のスクリプトです
public int enemyattack;
// Use this for initialization
void Start()
{
} // Update is called once per frame void Update() { } void OnTriggerEnter(Collider col) { if (col.gameObject.tag == "Player") { enemyattack = Random.Range(1, 20); } }
武器オブジェクトを敵オブジェクトの子に設定したので以下の3つのコードに書き直して動作させたのですがどれもうまくプレイヤー側で受け取ることができません。
下記のスクリプトはプレイヤー側に持たせたのですがどれもうまくPlayerattackの値にenemyattackの値を代入することができませんでした。
Playerattack = gameObject.transform.Find("武器の名前").GetComponent<武器のスクリプト名>().enemyattack;
Playerattack =transform.Find("武器の名前").GetComponent<武器のスクリプト名>().enemyattack;
Playerattack = transform.FindChild("武器の名前").GetComponent<武器のスクリプト名>().enemyattack;
何かよい方法はないでしょうか?
記述不足で申し訳ありません....
回答3件
あなたの回答
tips
プレビュー