我试图创建一个空的游戏对象,并将第一个游戏对象作为子对象,但这并不能解决问题。只是旋转对象,脚本就可以了,但是如果我使用LookAt,则旋转得不好,因为枪支指向红色轴,蓝色轴位于身体上。
我尝试了简单的LookAt:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LookAT : MonoBehaviour
{
private GameObject target;
// Use this for initialization
void Start()
{
target = GameObject.FindGameObjectWithTag("Enemy");
}
// Update is called once per frame
void Update()
{
transform.LookAt(target.transform);
}
}
然后,我尝试了这一点:看起来好一点了,好像它正朝着红色轴对准枪支,但还不够完美,但仍未达到理想的目标,我认为不确定并不确定这是否很好解决方案:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LookAT : MonoBehaviour
{
public float speed;
private GameObject target;
// Use this for initialization
void Start()
{
target = GameObject.FindGameObjectWithTag("Enemy");
}
// Update is called once per frame
void Update()
{
Vector3 direction = target.transform.position - transform.position;
Quaternion toRotation = Quaternion.FromToRotation(transform.right, direction);
transform.rotation = Quaternion.Lerp(transform.rotation, toRotation, speed * Time.time);
}
}
我尝试过的第二个解决方案似乎是现在红色的枪支轴正对着目标,但是枪支和底座上的环正在卡死,环也旋转了,但我认为它们不应该旋转,否则它们不应该成为目标的一部分。在目标上寻找。
在此屏幕快照中,基座上的整个环就像是看着目标,并使整个炮塔看起来很奇怪。因此,我不确定在只有炮塔转弯对象会面对目标的情况下,如何使这些环和其他东西旋转。
看起来模型的轴与您要使用的轴不一致。它建议您修复模型,但也可以在顶部添加父变换,以便可以对模型进行一些旋转。
Check this out详细说明。
为了获得两个离散的旋转轴,我想您在帖子的末尾描述了,您可以按照我链接的帖子中的描述添加两个父对象,并将旋转分别应用于每个父对象。