gpt4 book ai didi

c# - 在 Unity 中通过代码创建枢轴点

转载 作者:太空宇宙 更新时间:2023-11-03 20:59:35 27 4
gpt4 key购买 nike

在 Unity 中创建门脚本时,您必须设置一个轴心点。你让门成为这个枢轴点的 child 。开门时,枢轴点旋转,门会自动相对旋转。

我知道您可以在编辑器中创建一个空的游戏对象,但我想通过代码来完成。

[SerializeField]
Vector3 pivotPosition; // the spawn position of the pivot point

Transform pivot;

void Start()
{
pivot= new GameObject().transform; // create the pivot point
pivot.position = pivotPosition; // position the pivot point
transform.SetParent(pivot); // parenting
}

因此,当在检查器中将门旋转 (0,0,0) 时,这可以正常工作。

例如,当旋转门 (0,-30,0) 时,轴心点在创建时未正确放置。

Pivot Creation

即使门旋转了 (x,y,z),我如何才能正确地创建这个轴心点,使其位置正确

最佳答案

你可以使用Transform.RotateAround

例子

using UnityEngine;

public class RotateAround : MonoBehaviour {

public Transform pivot;
public float degreesPerSecond;

void Update () {
transform.RotateAround(pivot.position, Vector3.up, degreesPerSecond * Time.deltaTime);
}
}

https://docs.unity3d.com/ScriptReference/Transform.RotateAround.html

关于c# - 在 Unity 中通过代码创建枢轴点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46848163/

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