「卓球ゲーム」で弾を撃ち返そうとする敵の動きを作ろうとしている。
インスタンスとして生成した弾オブジェクトのY座標をとり、
別のオブジェクトをY座標のみで追従したいがうまくいかない。
試した方法:インスタンスオブジェクトにタグを割り当てて、
GameObject.FindGameObjectsWithTagで,タグを割り当てたインスタンスオブジェクトを取得し、
その座標をもとのオブジェクトの座標に上書きすることで、移動させようとする方法
結果:
・インスタンスとして生成したオブジェクトの位置に追従せずプレハブの発生位置に行ってしまう。
味方か敵にダメージが入るたびに弾はDestoroyさせつつInstantiateさせるつもりなので、「インスタンスとして生成した弾オブジェクトのY座標をとり、別のオブジェクトをY座標のみで追従する」という、今回の仕様にすることにした。
6時間くらい悩んだのですが分かりそうにないので、質問させていただきました。
分かる方、よろしくお願いいたします。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Enemy : MonoBehaviour { private GameObject ballInstance; float middleSpeed = 0.01f; void Update() { if (ballInstance == null) { ballInstance = GameObject.FindWithTag("ball"); } if (ballInstance != null) { ballInstance = GameObject.FindWithTag("ball"); Vector3 ballPos = ballInstance.transform.position; Vector3 startPos = transform.position; ballPos.x = ballInstance.transform.position.x; float distance = Vector3.Distance(startPos, ballPos); float middlePos = (Time.time * middleSpeed) / distance; transform.position = Vector3.Lerp(startPos, ballPos, middlePos); } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/18 06:17 編集
2021/12/18 06:39
2021/12/24 01:09 編集