原始代码:
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);
但是,加号是错误的。
使用transform.localPosition代替transform.position。
transform.localPosition将给出相对于父变换的变换位置。
Also You are assigning y position to
tempPos.y
so you should be addingtempPos.y
and nottempPos
.