Unity学习

控制物体的运动

Start和Update事件

public class Study : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        //在游戏开始运行时执行一次,适合进行组件初始化
	Debug.Log("组件执行开始函数!"); //Debug.Log()
    }

    // Update is called once per frame
    void Update()
    {
        //每帧都会执行
	Debug.Log("当前游戏进行时间:" + Time.time);
    }
}

修改物体位置

1、Transform组件
2、脚本修改

//在脚本中修改物体位置
//1、使用Translate()函数
//物体将沿着自身的右侧方向前进1.5个单位
void Start()
{
    transform.Translate(1.5f, 0, 0);
}
//2、直接在一开始指定新的位置
void Start()
{
    transform.position = new Vector3(1, 2.5f, 3);
}

//如果要做一个连续的位移动画
void Update()
{
    transform.Translate(1.5f, 0, 0);
    //等价于
    transform.position += new Vector3(1, 2.5f, 3);
}

以上的写法无法保证“每秒移动相同的距离”,Time.deltaTime表示两帧之间的间隔

void Update()
{
    transform.Translate(0, 0, 5 * Time.deltaTime);
    //或
    transform.position += new Vector3(0, 0, 5 * Time.deltaTime);
}

读取和处理输入

Input.GetAxis()返回的是一个float类型的值,取值范围为-1~1。

void Update()
{
    public float Speed = 10;
    //获取用户当前的纵轴输入和横轴输入
    float v = Input.GetAxis("Vertical");
    float h = Input.GetAxis("Horizontal");
    //控制物体运动
    transform.Translate(h * Time.deltaTime * Speed, 0, v * Time.deltaTime * Speed);
}

触发器事件

触发器定义一个范围,其它带有碰撞体组件的物体进入了这个范围时,就会产生一个触发事件。

创建触发器

触发器函数

posted on   Shazam_sjtu  阅读(25)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示