编程,unity,沿世界轴旋转一定角度,并且限制角度再一定范围内,如何写,帮忙看下我这沿自身的如何改?
编程,unity,沿世界轴旋转一定角度,并且限制角度再一定范围内,如何写,帮忙看下我这沿自身的如何改?transform.eulerAngles=newVector3(r...
编程,unity,沿世界轴旋转一定角度,并且限制角度再一定范围内,如何写,帮忙看下我这沿自身的如何改?
transform.eulerAngles = new Vector3(rigidbody.velocity.y * xxuanzhuan, rigidbody.velocity.x * -tilt, rigidbody.rotation.z);
用rotate该怎么写?,我用rotate 他会不停的转圈 也回不来
transform.Rotate(rigidbody.velocity.y * xxuanzhuan, rigidbody.velocity.x * -tilt, rigidbody.rotation.z);
用 上面那个 限制 角度 而且 松开健 能回到原点来。就是沿自身 旋转,我要沿 世界坐标旋转
如何 改
我要的 效果是按 左键 左边 沿世界轴 右转 (松开 归回0)
按 右键 沿世界轴 右 转 (松开 归回0)
按上健 沿世界轴 上 转 (松开 归回0)
按下健 沿世界轴 下 偏转 (松开 归回0)
这句可以 实现
transform.eulerAngles = new Vector3(rigidbody.velocity.y * xxuanzhuan, rigidbody.velocity.x * -tilt, rigidbody.rotation.z);
但是 是沿 自身 旋转 我需要沿世界轴 旋转 展开
transform.eulerAngles = new Vector3(rigidbody.velocity.y * xxuanzhuan, rigidbody.velocity.x * -tilt, rigidbody.rotation.z);
用rotate该怎么写?,我用rotate 他会不停的转圈 也回不来
transform.Rotate(rigidbody.velocity.y * xxuanzhuan, rigidbody.velocity.x * -tilt, rigidbody.rotation.z);
用 上面那个 限制 角度 而且 松开健 能回到原点来。就是沿自身 旋转,我要沿 世界坐标旋转
如何 改
我要的 效果是按 左键 左边 沿世界轴 右转 (松开 归回0)
按 右键 沿世界轴 右 转 (松开 归回0)
按上健 沿世界轴 上 转 (松开 归回0)
按下健 沿世界轴 下 偏转 (松开 归回0)
这句可以 实现
transform.eulerAngles = new Vector3(rigidbody.velocity.y * xxuanzhuan, rigidbody.velocity.x * -tilt, rigidbody.rotation.z);
但是 是沿 自身 旋转 我需要沿世界轴 旋转 展开
1个回答
展开全部
vector3 a;
void Start()
{
a=transform.eulerAngles;
}
void Update()
{
if(!Input.anyKey)
{ transform.eulerAngles=a;}
else
{
float x=Input.GetAxis("Horizontal");
float y=Input.GetAxis("Vertical");
tranform.Rotate(x*Time.deltaTime,y*Time.deltaTime,0,Space.World);
}
}
void Start()
{
a=transform.eulerAngles;
}
void Update()
{
if(!Input.anyKey)
{ transform.eulerAngles=a;}
else
{
float x=Input.GetAxis("Horizontal");
float y=Input.GetAxis("Vertical");
tranform.Rotate(x*Time.deltaTime,y*Time.deltaTime,0,Space.World);
}
}
更多追问追答
追问
请问下如何 旋转到固定角度,让它停下来,
比如 0度 到 60度。如果一直按住 它 会不停的转下去 如何让它 到60度就停下来?
追答
vector3 a;
float i=0,j=0;
void Start()
{
a=transform.eulerAngles;
}
void Update()
{
if(!Input.anyKey)
{
transform.eulerAngles=a;
i=0;
j=0;
}
else
{
if(mathf.abs(i)<60f)
{
float x=Input.GetAxis("Horizontal");
i+=x*Time.deltaTime;
}
if(mathf.abs(j)<60f)
{
float y=Input.GetAxis("Vertical");
j+=y*Time.deltaTime;
}
tranform.Rotate(x*Time.deltaTime,y*Time.deltaTime,0,Space.World);
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询