別のゲームオブジェクトのアウトラインに沿ってゲームオブジェクトのインスタンスを移動したいと考えています。それはUnityの2Dプロジェクトです。Raycast2Dのオブジェクトをインスタンス化してインスタンスを回転させる
私の現在のコード:
Vector3 mousePosition = m_camera.ScreenToWorldPoint(Input.mousePosition);
RaycastHit2D hit = Physics2D.Raycast(new Vector2(mousePosition.x, mousePosition.y), new Vector2(player.transform.position.x, player.transform.position.y));
if (hit.collider != null && hit.collider.gameObject.tag == "Player") {
if (!pointerInstance) {
pointerInstance = Instantiate(ghostPointer, new Vector3(hit.point.x, hit.point.y, -1.1f), Quaternion.identity);
} else if(pointerInstance) {
pointerInstance.gameObject.transform.position = new Vector3(hit.point.x, hit.point.y, -1.1f);
pointerInstance.gameObject.transform.eulerAngles = new Vector3(0f, 0f, hit.normal.x);
}
}
残念ながら、ゲームオブジェクトはマウスの方に回転しないとplayerObjectの左側に位置が時々オフもあります。私はQuaternion.LookRotation(hit.normal)でInstantiate()を使用しようとしましたが、どちらも不運です。ここで
すべてのヘルプは高く評価されます。ありがとう!