如何将浮点数加到Y上的位置?

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

原来的代码是这样的。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FloatInAir : MonoBehaviour
{
    public float amplitude;          //Set in Inspector 
     public float speed;                  //Set in Inspector 
     private float tempVal;
     private Vector3 tempPos;

     void Start () 
     {
         tempVal = transform.position.y;
     }

     void Update () 
     {        
         tempPos.y = tempVal + amplitude * Mathf.Sin(speed * Time.time);
         transform.position = tempPos;
     }
}

但是我想保持原来的位置只是改变Y,所以我试着把transform.position这一行改成了 。

transform.position = new Vector3(transform.position.x, transform.position.y + tempPos, transform.position.z);

但是做加法是错误的。

c# unity3d
1个回答
1
投票

使用 转变.localPosition 而不是 变换位置.

transform.localPosition将给出相对于父变换的位置。

另外,您还将y位置分配给了 tempPos.y所以你应该添加 tempPos.y 而不是 tempPos.

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