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

原始代码:

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);

但是,加号是错误的。

评论
  • mut
    mut 回复

    使用transform.localPosition代替transform.position。

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

    Also You are assigning y position to tempPos.yso you should be adding tempPos.y and not tempPos.