如何搜索游戏对象,然后使用输入框 Unity 缩放摄像机以指向该对象?



我正在构建一个需要搜索框的模拟,用户可以在其中键入游戏对象的名称,摄像机应在Unity 5场景中自动放大该对象。但是我已经尝试了多个脚本,但没有运气。

下面的代码是我认为可以解决这个问题的代码,但它没有!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class drone_camera_lookup : MonoBehaviour {
public float minX = -360.0f;
public float maxX = 360.0f;
public float minY = -45.0f;
public float maxY = 45.0f;
public float sensX = 100.0f;
public float sensY = 100.0f;
float rotationY = 0.0f;
float rotationX = 0.0f;
public GameObject drone;
public GameObject actual;
public GameObject instance;
var gameObjectTag;
void Update () {
//  drone = Resources.Load("drone_with_controller") as GameObject;
drone = GameObject.FindGameObjectWithTag(gameObjectTag);
actual = this.drone.GetComponent<GameObject>();
instance = Instantiate(actual, transform.position, transform.rotation) as GameObject;
rotationX += instance.transform.localEulerAngles.x * sensX * Time.deltaTime;
rotationY += instance.transform.localEulerAngles.y * sensY * Time.deltaTime;
rotationY = Mathf.Clamp (rotationY, minY, maxY);
transform.localEulerAngles = new Vector3 (-rotationY, rotationX, 0);    
}
}

显示的错误是:空引用异常:对象引用未设置为对象的实例

理想情况下,我想让脚本将摄像机动画化到对象。提前谢谢你。

嘿伙计们,我设法通过将此代码添加到我的相机来解决我的问题,脚本从输入框中接收输入,然后使用 wrld3d API 将相机动画化到对象,对我来说工作非常流畅:-)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Wrld;
using Wrld.Space;
public class focus_drone : MonoBehaviour {
public Text drone_input; 
public Transform target;
private Camera cameraX;
void Start()
{
string drone_id = drone_input.text.ToString();
target = GameObject.Find(drone_id).transform;
transform.LookAt(target); 
}
void Update()
{
string drone_id = drone_input.text.ToString();
// Rotate the camera every frame so it keeps looking at the target
target = GameObject.Find(drone_id).transform;
transform.LookAt(target);
var destLocation = LatLong.FromDegrees(13.746863, 100.538847);
Api.Instance.CameraApi.AnimateTo(destLocation, distanceFromInterest: 30, headingDegrees: 0, transitionDuration: 0.5, jumpIfFarAway: false);
}
}

我希望无论谁面对与我相同的问题,都会发现这很有用。

最新更新