为了账号安全,请及时绑定邮箱和手机立即绑定

transform.position 在 Unity 中没有设置正确的位置?

transform.position 在 Unity 中没有设置正确的位置?

C#
潇湘沐 2021-11-21 10:51:00
我遇到了这个我不知道如何解决的问题,如果条件得到验证,我有一个移动的物体会返回到一个位置,但它似乎有时在工作,但有时却不是..这是我的脚本:using System.Collections;using System.Collections.Generic;using UnityEngine;public class MovingDes : MonoBehaviour {    private float speed = 5f;    Transform trn;    //-37.6914    //62.32123    // Use this for initialization    void Start() {        trn = GetComponent<Transform>();    }    // Update is called once per frame    void Update() {        transform.Translate(Vector3.back * (speed * Time.deltaTime));        if(transform.position.z <= -37.6914){            Vector3 newPosition = new Vector3(17.5f,125.7f,165.32123f);            trn.position = newPosition;        }    }}问题是我可以在我的 Unity 编辑器中看到位置与我设置的不同,而且我不明白这些值来自哪里,我没有肯定地写它们。
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您正在使用 transform.Translate 每帧移动对象,因此在设置新位置后,您的对象会立即再次移动。请注意,在您的情况下,trn 和 transform 指的是同一个 Transform 组件。


查看完整回答
反对 回复 2021-11-21
?
冉冉说

TA贡献1877条经验 获得超1个赞

你为什么不把你的trn.position=改为transform.position=我认为你不需要GetComponent<>当前游戏对象的变换组件。或者可能与方法的relativeTo参数有关.Translate


查看完整回答
反对 回复 2021-11-21
  • 2 回答
  • 0 关注
  • 682 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信