【发布时间】:2021-12-18 07:09:01
【问题描述】:
using System.Collections.Generic;
using UnityEngine;
public class RotationPlasmaCast : MonoBehaviour
{
float LockPos = 0;
public Transform Squid;
float SquidRot = Squid.z;
void FixedUpdate()
{
transform.rotation = Quaternion.Euler(LockPos, LockPos, SquidRot.rotation);
}
}
我使用此代码使我的弹丸 (PlasmaCast) 的旋转与我的播放器 (Squid) 的旋转相同。 Unity告诉我:
字段初始值设定项不能引用非静态字段、方法或属性“RotationPlasmaCast.Squid”
有谁知道为什么 Unity 给我一个错误?
【问题讨论】:
-
您不能将已声明的变量用作另一个变量声明的值。而是在
Awake或Start中分配SquidRot值。原因是因为 Transform 不是编译时常量,它是运行时值,因此在声明中没有任何意义(因为被分配的值在编译时是未知的)。
标签: c# rotation quaternions