C# 设置transform.eulerAngles不';I don’我不能在州机器里工作
我正在尝试为boss战斗创建一个攻击,在随机旋转并直接瞄准玩家之前,投射物围绕玩家的位置逐渐旋转得更快。到目前为止,我实施的攻击的唯一部分是旋转。然而,当它在玩家周围正确移动时,它不会旋转指向玩家。这是我的密码:C# 设置transform.eulerAngles不';I don’我不能在州机器里工作,c#,unity3d,C#,Unity3d,我正在尝试为boss战斗创建一个攻击,在随机旋转并直接瞄准玩家之前,投射物围绕玩家的位置逐渐旋转得更快。到目前为止,我实施的攻击的唯一部分是旋转。然而,当它在玩家周围正确移动时,它不会旋转指向玩家。这是我的密码: using System.Collections.Generic; using UnityEngine; public class FBHCircle : StateMachineBehaviour { private float rotationValue; [
using System.Collections.Generic;
using UnityEngine;
public class FBHCircle : StateMachineBehaviour
{
private float rotationValue;
[SerializeField] private float maxSpeed;
private float currentSpeed;
[SerializeField] private float radius;
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
rotationValue = 0;
}
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
currentSpeed = maxSpeed * 4 * stateInfo.normalizedTime * (1 - stateInfo.normalizedTime);
rotationValue += currentSpeed * Time.deltaTime;
animator.transform.position = GameObject.Find("Player").transform.position + (radius * new Vector3(Mathf.Sin(rotationValue), Mathf.Cos(rotationValue)));
animator.transform.eulerAngles = Vector3.forward * rotationValue;
}
}
现在,设置animator.transform.position
不会给我带来任何问题,但是设置animator.transform.eulerAngles
根本不起作用。我在另一次攻击中也遇到了这个问题,但我认为这只是与退出时间或其他问题有关,我把问题留给了以后。现在,我认为这与退出时间无关。我还检查了检查员,以确保它没有旋转非常小的量,但结果仍然是它根本没有旋转。任何帮助都将不胜感激
编辑:我在发布这个问题后也意识到,我忘了提到投射物的旋转不是通过实际动画设置的。它只是通过脚本设置的,没有其他设置。
经过大量研究和反复尝试,我终于找到了答案。在其他一些动画剪辑中,我确实通过动画属性旋转了它。尽管这是一个完全独立的动画,但它仍然阻止我为一个完全不同的动画更改StateMachineBehaviour脚本中的eulerangle。我从其他动画中移除了旋转,它成功了!。。。某种程度上。我现在有一个不同的问题,包括我从其他动画中删除了旋转,但我现在可以处理它。请包括一个显示投射物局部轴的图像。你试过使用
animator.transform.LookAt(playerttransform)吗代码>而不是编辑eulerAngles
?顺便说一句,尽量避免调用游戏对象。查找每个更新-最好调用它一次并缓存结果。Was一点也不起作用
的确切含义是什么?投射物始终处于默认旋转状态。你的最大速度
设置正确吗?是的,我相信现在设置为4。圆周运动没有问题,只是旋转。