👨💻个人主页:@元宇宙-秩沅
👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
👨💻 本文由 秩沅 原创
👨💻 收录于专栏:unity每日一记
⭐【unity本站最全系列】unity常用API大全一篇文章足以
那我们就用Time.delaTime
图片:
那我们就用Input监听按钮来实现
animi.CrossFade()方法重载参数越小,动画过渡越快,当然也要取消Has Exit time 的勾选
那我们先判断游戏人物的朝向,gameObject.transform.localScale.x
上代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//--------------------------------
//--------创建人:秩沅-----------
//--------功能作用:实现游戏对象移动和相应动画的切换 ----------
//---------------------------------
public class Move: MonoBehaviour
{
float a,b,S;
Animator anim;
// Start is called before the first frame update
void Start()
{
anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
S = Input.GetAxisRaw("Horizontal");
a += S * Time.deltaTime;
b = gameObject.transform.localPosition.y;
gameObject.transform.localPosition = new Vector2(a, b);
//行走动画的切换,右方
if (Input.GetKeyDown(KeyCode.D))
{
//当按键的方向和它的朝向不一致的时候,即可变向
if (gameObject.transform.localScale.x < 0)
{
float c, d;
c = -gameObject.transform.localScale.x;
d = gameObject.transform.localScale.y;
gameObject.transform.localScale = new Vector2(c, d);
}
anim.CrossFade("Walk",0.00000001f);
}
else if(Input.GetKeyUp(KeyCode.D))
{
anim.CrossFade("Idel", 0.00000001f);
}
//行走动画的切换,左方
if (Input.GetKeyDown(KeyCode.A))
{
if (gameObject.transform.localScale.x > 0)
{
float c, d;
c = -gameObject.transform.localScale.x;
d = gameObject.transform.localScale.y;
gameObject.transform.localScale = new Vector2(c, d);
}
anim.CrossFade("Walk", 0.00000001f);
}
else if (Input.GetKeyUp(KeyCode.A))
{
anim.CrossFade("Idel", 0.00000001f);
}
}
}
👨💻十大常见的生命函数
👨💻Reset()://重置函数,
调用情况和时间:
编译器不运行的情况下 和 使用脚本组件Reset功能的时候, 挂脚本的时候
调用次数: 1次
👨💻 Awake(); //苏醒函数
调用情况和时间:
1.点击运行的时候
2.组件从失灵到激活的时候,但只调用一次
3.Instantiate方法调用的时候
调用次数: 1次
👨💻OnEnable(); //组件调用函数
调用情况和时间: 组件从失灵到激活的时候,可多次实现
调用次数:只要组件有失灵到激活的状态就可调用 ,
👨💻Strat():
调用情况和时间: 当游戏物体被激活,或者脚本组件被激活时调用 , (点击运行的时候也是会被激活)
调用次数: 1次
👨💻FixedUpdate(每帧)
一般用作物理更新
调用情况和时间: FixedUpdate一般适用在相关物理引擎中。它的频 率是0.02秒,是固定的。
调用次数: 大概每秒50次左右、
FixedUpdate & Update & LateUpdate的 区别详解
👨💻UpData(每帧) ;
一般用作游戏逻辑更新 update取决于电脑显卡的性能,好的话,快,不行的话就慢,所以相比Fixed Update它具有随机性。
调用情况和时间: 在以上生命周期函数之后,每帧调用一次
调用次数: 大概每秒60次左右
变量赋值生效顺序:
变量声明直接赋值 > 检视面板赋值 > Awake > Enable > 外部赋值 > Start
👨💻LateUpate(每帧):
一般用作相机更新 它的执行顺序在update的后面,一般适用于相机的跟随,物体运动在update中,相机跟随在LateUpdate,这样会减少误差,避免出现不必要的瑕疵。
调用情况和时间: 在Update调用之后,并且也是每秒60帧左右(适用于物体移动后的视角跟随)
调用次数: 大概每秒60次左右
👨💻OnGUI(每帧)
👨💻OnDisable():
调用情况和时间: 和OnEnable差不多,但是Disable是组件从完好到失活的状态, (相当于关闭组件的时候)
调用次数: 组件从激活到失灵的时候调用(二者前提是在游戏运行的时候)
👨💻OnApplicationQuit()
调用情况和时间: 当所有游戏物体退出时调用,适用于打包的时候
调用次数: 满足以上情况便调用
👨💻OnDestroy();
调用情况和时间: 适用于物体的销毁,删除,以及游戏的停止退出时
调用次数: 满足以上情况便调用
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!