Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置transform.eulerAngles不';I don’我不能在州机器里工作_C#_Unity3d - Fatal编程技术网

C# 设置transform.eulerAngles不';I don’我不能在州机器里工作

C# 设置transform.eulerAngles不';I don’我不能在州机器里工作,c#,unity3d,C#,Unity3d,我正在尝试为boss战斗创建一个攻击,在随机旋转并直接瞄准玩家之前,投射物围绕玩家的位置逐渐旋转得更快。到目前为止,我实施的攻击的唯一部分是旋转。然而,当它在玩家周围正确移动时,它不会旋转指向玩家。这是我的密码: using System.Collections.Generic; using UnityEngine; public class FBHCircle : StateMachineBehaviour { private float rotationValue; [

我正在尝试为boss战斗创建一个攻击,在随机旋转并直接瞄准玩家之前,投射物围绕玩家的位置逐渐旋转得更快。到目前为止,我实施的攻击的唯一部分是旋转。然而,当它在玩家周围正确移动时,它不会旋转指向玩家。这是我的密码:

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。圆周运动没有问题,只是旋转。