如何本地化其他GameObject位置 移动到它(就像传送到那个对象)我该怎么办?
<meta name="viewport" content="width=device-width, initial-scale=1">
它的目标是我想要获得它的位置并移动到它(传送) 我在游戏黑客上工作
答案 0 :(得分:1)
如果您已经引用了目标对象,则可以在想要传送的对象中的任何位置使用this.position = BotController.Player.position
。
public class EasyTeleporter : MonoBehavior
{
...
public void SomeFunction()
{
position = BotController.Player.position
}
}
如果您正在创建第一人称游戏,并希望实现远程传输到任何对象之类的东西,那么您应该使用光线投射。
例如,您可以使用Unity默认资产FirstPersonCharacter(在资产商店中可用,或者您可以在启动新项目时添加它)并将以下脚本添加到FirstPersonCharacter游戏对象(这是FPSController预制件的子代):
using UnityEngine;
using System.Collections;
public class PlayerTeleporter : MonoBehaviour
{
bool shooting = false;
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
shooting = true;
}
}
void FixedUpdate()
{
if (shooting)
{
shooting = false;
RaycastHit hit;
// you are casting a ray in front of your camera wich hits the first collider in its path
if (Physics.Raycast(transform.position, transform.forward, out hit, 100f))
{
// normally you shouldn't teleport directly into the trget object
transform.position = hit.transform.position;
}
}
}
}
一般来说,你应该澄清你的问题。你正在创造什么游戏,传送的目标和对象是什么,你想如何触发它。