青青发财树 2022-09-13 17:48 采纳率: 0%
浏览 24

update函数的问题

img


为什么update 里的canMove变量和脚本里的不能不同步 ?外面的变true了,update里还是false?希望是按键以后能执行update里的函数(按键事件看起来应该是正常的),望解答。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CardBehavior : MonoBehaviour
{
private Vector2 primitivePos;
private Vector2 primitiveRot;
private bool canMove;

private Vector2 targetPos;
private float distance;

void Start()
{
    distance = 0.4f;
    canMove = false;
    primitivePos = transform.position;
    targetPos = new Vector2(0.7f, 0);
}

void Update()
{
    Debug.Log("Update前是" + canMove);
    if (canMove)
    {
        MoveTo(targetPos, distance);
        
    }
}

public void MoveTo(Vector2 targetPos, float dis)
{
    if (Vector2.Distance(transform.position, targetPos) > dis)
    {
        transform.Translate(Vector2.right * Time.deltaTime * 3);
        Debug.Log("MoveTo过程中是" + canMove);
    }
    else
    {
        canMove = false;
        Debug.Log("Move结束是" + canMove);
        //等待是攻击还是返回

        Invoke("GoBack", 0.1f);
    }
}

private void GoBack()
{
//    canMove = true;
//    targetPos = primitivePos;
//    distance = 0.01f;
      transform.position = primitivePos; 
      canMove = true;
      Debug.Log("GoBack后是" + canMove);
}

public void OnAttackButton()
{
    canMove = true;
    Debug.Log("OnAtkBtn后是" + canMove);
}

}

  • 写回答

2条回答 默认 最新

  • 陈言必行 Unity领域优质创作者 2022-09-13 18:14
    关注

    看了好几遍,没看出逻辑有什么问题,建议重启一下再试试

    评论

报告相同问题?

问题事件

  • 创建了问题 9月13日

悬赏问题

  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd