gpt4 book ai didi

c# - Unity2D 镜头对象随角色转动但不应该

转载 作者:行者123 更新时间:2023-11-30 21:26:38 25 4
gpt4 key购买 nike

我正在尝试学习 Unity。我的目标是 build 一个小行星克隆体。

目前,我的角色能够飞行、射击和旋转到鼠标位置。但是,子弹会以某种方式受到玩家转动的影响。

下面是一些示例代码:

播放器.cs

    private void Shoot()
{
Instantiate(Bullet, transform);
}

private void FaceMouseDirection()
{
Vector2 direction = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
float angle = Mathf.Atan2(direction.x, direction.y) * Mathf.Rad2Deg;
Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.back);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, turningSpeed * Time.deltaTime);
}

子弹.cs

    private GameObject parent;
private Vector3 Force;

// Use this for initialization
void Start ()
{
parent = GameObject.Find("Player");
Force = parent.transform.up * bulletSpeed;
}

void FixedUpdate()
{
transform.Translate(Force * Time.fixedDeltaTime);
}
}

最佳答案

子弹被设置为玩家的 child 。子对象与其父对象保持相同的旋转。

在子弹的 Start() 中,您需要在设置力后从子弹中移除父项。

在我的脑海中,你应该能够做到这一点

transform.parent = null;

关于c# - Unity2D 镜头对象随角色转动但不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58962845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com