我需要一些帮助。我在一个2d团结游戏,其中有一个毛茸茸的球作为主角。这个毛茸茸的球有一个手组件(儿童),其中有一个动画。每一个单独的帧有一个箱子碰撞器属性。这只手将被激活时,我按下E和动画将开始在我的光标所在的方向。所以,问题是下一个:我想让那只手抓住东西。像一个盒子。在这里我请求你的帮助。我试着找出我如何可以冻结动画一小段时间,像5秒或直到我再次按下E,当盒子碰撞器的特定帧碰撞一个对象(如地面或盒子)。这里是手的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class facingScript : MonoBehaviour
{
private SpriteRenderer render;
private Camera mainCam;
private Vector3 mousePos;
private Animator aniHand;
public bool freezeAniamtion = false;
void Start()
{
render = GetComponent<SpriteRenderer>();
mainCam = Camera.main;
gameObject.SetActive(false);
aniHand = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
mousePos = Input.mousePosition;
mousePos = mainCam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, mainCam.transform.position.z - transform.position.z));
Vector3 rotation = mousePos - transform.position;
if(rotation.x > 0)
render.flipY = true;
else
render.flipY = false;
if(Input.GetKeyDown(KeyCode.E))
{
aniHand.Play("CharacterHand");
}
}
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "box")
{
StartCoroutine(HandCollide());
// help pls :)
}
}
private IEnumerator HandCollide(float waitTime)
{
// idk what i should put here :P
}
}`
我尝试使用aniHand.speed,但它什么也不做,使用PlayInFixedTime,但不知道它是如何工作的
1条答案
按热度按时间mzsu5hc01#
所以.我fugire出来一些如何.我有另一个脚本,激活和deactivate我的手1秒.当我试图停止我的动画手脚本它只是从另一个脚本