为什么游戏对象的蓝色轴朝前,而枪支在红色轴上而不是蓝色?

问题描述 投票:0回答:1

我试图创建一个空的游戏对象,并将第一个游戏对象作为子对象,但这并不能解决问题。只是旋转对象,脚本就可以了,但是如果我使用LookAt,则旋转得不好,因为枪支指向红色轴,蓝色轴位于身体上。

Wrong axis

我尝试了简单的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);
    }
}

我尝试过的第二个解决方案似乎是现在红色的枪支轴正对着目标,但是枪支和底座上的环正在卡死,环也旋转了,但我认为它们不应该旋转,否则它们不应该成为目标的一部分。在目标上寻找。

在此屏幕快照中,基座上的整个环就像是看着目标,并使整个炮塔看起来很奇怪。因此,我不确定在只有炮塔转弯对象会面对目标的情况下,如何使这些环和其他东西旋转。

Wrong stuff is rotating and looking facing the target

c# unity3d
1个回答
0
投票

看起来模型的轴与您要使用的轴不一致。它建议您修复模型,但也可以在顶部添加父变换,以便可以对模型进行一些旋转。

Check this out详细说明。

为了获得两个离散的旋转轴,我想您在帖子的末尾描述了,您可以按照我链接的帖子中的描述添加两个父对象,并将旋转分别应用于每个父对象。

© www.soinside.com 2019 - 2024. All rights reserved.