您现在的位置是:首页 >学无止境 >【Unity入门】13.脚本外置参数网站首页学无止境
【Unity入门】13.脚本外置参数
【Unity入门】脚本外置参数
大家好,我是Lampard~~
欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢
(一)外置脚本参数
(1)外置自转脚本的速度参数
我们在RotateLogic的时候,为了实现自转功能,我们在update方法里调用了transform.Rotate方法,其中我们给他的速度设置为90°每秒,4秒转一圈
void Update()
{
float speed = 90;
this.transform.Rotate(0, speed * Time.deltaTime, 0);
}
当前效果:
为了更方便的去调整这个速度,能够在编译器中像修改Position那样修改这个自转速度,我们可以把这个speed速度字段设置为全局
public float speed = 90;
void Update()
{
this.transform.Rotate(0, speed * Time.deltaTime, 0);
}
设置完之后看编译器,就会神奇的发现RotateLogic脚本多了一个外置的Speed参数
修改这里的值就能同步修改脚本的速度数值,举个栗子:
(2)Tooltip给外置参数加上注解
脚本很多,参数很多。为了更易读我们可以给外置的参数设置注解,使用到的是Tooltips方法:
Tooltips是Unity编辑器中的一个功能,用于为组件、变量、属性等提供提示信息,方便开发者使用和理解。当鼠标悬停在一个组件或变量上时,Unity编辑器会显示该组件或变量的Tooltips信息。
Tooltips信息通常用于描述该组件或变量的作用、取值范围、注意事项等,可以帮助开发者更好地理解和使用该组件或变量。同时,Tooltips信息也可以用于文档化和代码注释,方便维护和交流
它的用法也比较简单,加上这样一行代码即可:
[Tooltip("自转每秒Y轴旋转的角度")]
public float speed = 90;
void Update()
{
this.transform.Rotate(0, speed * Time.deltaTime, 0);
}
(二)参数赋值的顺序
(1)参数赋值的作用
在我们做地月系统旋转的时候,因为月亮和地球的旋转速度不一样,我们是给地球赋予了RotateLogic,然后给月亮单独写了一个MoonRotateLogic
当我们可以直接在编译器对参数赋值,就不需要两个脚本了,把MoonRotateLogic,把RotateLogic增加组件至月亮旋转节点处,然后调节速度即可
(2)参数赋值的顺序
上一篇在学习MonoBehaviour事件函数的时候,我们知道一个脚本会执行awake,onEnter,start,update等方法
那如果我们定义全局变量时设定一个速度值,在编译器又设置一个速度值,awake,onEnter,start,update又分别修改这个速度值,那最终会取哪一个值呢?
很简单,加一个日志打印看看就可以了:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RotateLogic : MonoBehaviour
{
// Update is called once per frame
[Tooltip("自转每秒Y轴旋转的角度")]
public float speed = 90;
private void Awake()
{
this.speed = 100;
Debug.Log("正在执行Awake方法, 当前速度是:" + this.speed);
}
private void OnEnable()
{
this.speed = 200;
Debug.Log("正在执行OnEnable方法, 当前速度是:" + this.speed);
}
// Start is called before the first frame update
void Start()
{
this.speed = 300;
Debug.Log("正在执行Start方法, 当前速度是:" + this.speed);
}
void Update()
{
this.speed = 400;
Debug.Log("正在执行Update方法, 当前速度是:" + this.speed);
this.transform.Rotate(0, speed * Time.deltaTime, 0);
}
}
然后我们在编译器把速度改成30,看看打印日志:
可以看到哪怕我们在编译器里有修改速度值,但是在基类的事件函数中都会覆盖那个赋值,而且顺序是Awake->OnEnter->Start->Update
好啦今天就到这里,感谢阅读!!!
点赞,关注!!!