Unity基础——脚本生命周期

1.Unity脚本和C#脚本的区别?

*unity脚本继承自MonoBehavior。

*unity脚本不能new。

*unity脚本有自己的生命周期。

*unity脚本作为组件附加在GameObject上面,是GameObject的附加功能(unity的使用是组件模式)

2.GameObject和Transform的区别

*GameObject是游戏对象本身。

*Transform是一个特殊的组件在unity引擎中(1.必有组件,任何游戏对象都有transform组件。 2.二者互相可获取。3.方法较多)

*GameObject:游戏对象的基本操作

*gameObject.activeSelf   是否激活

*gameObject.tag  标签

*gameObject.layer  层

*gameObject.name  名字

Transform:位置,旋转,缩放

transform.Position  位置

transform.Rotation  旋转

transform.Scale  缩放

3.生命周期

一个游戏组件的脚本,从开始实例化,到结束实例化被销毁,有一个完整的生命周期。

void Reset(){}

void Awake(){}

void OnEnable(){}

void Start(){}

void FixedUpdate(){}

void OnTriggerEnter(Collider other){}

void OnTriggerStay(Collider other){}

void OnTriggerExit(Collider other){}

void OnCollisionEnter(Collision other){}

void OnCollisionStay(Collision other){}

void OnCollisionExit(Collision other){}

void OnMouseUp(){}

void OnMouseDown(){}

void OnMouseEnter(){}

void OnMouseExit(){}

void OnMouseOver(){}

void Update(){}

void LateUpdate(){}

void OnGUI(){}

void OnApplicationPause(){}

void OnDisable(){}

void OnDestroy(){}

4.4种访问修饰符Public, Private, Protected, Internal.

5.GameObject动态获取(查找)游戏对象

GameObject.Find()

GameObject.FindObjectWithTag()

GameObject.FindObjectOfType<>();

6.transform获取子节点或组件方法

transform.Find

FindChild()

transform.GetChild();

transform.GetComponentInChildren<>();

7.添加/获取/删除组件

gameObject.AddComponent<>();

gameObject.GetComponnet<>();

Destroy(gameObject.GetComponnet<>());

8.物体位移、自转、公转的方法

transform.Translate();

transform.Rotate();

transform.RotateAround();

9.向量的模/标准化/叉乘/点乘/距离Vector3.magnitude

Vector3.Normalize

Vector3.Cross

Vector3.Dotvector

Vector3.Distance();

10.Time.帧分量、当前时间、时间缩放

Time.deltaTime

Time.time

Time.timeScale;

11.Input.键盘、鼠标按键(0,1,2)/鼠标滚轴/GetAxis()* Input面板:Edit->ProjectSetting->Input;

Input.GetKey,GetKeyDown,GetKeyUpInput.

GetMouseButtonInput.GetAxis("Mouse ScrollWheel");

Input.deltaScrollWheelInput.GetAxis("Horizontal/Vertical")

Input.GetAxis("Mouse X/Mouse Y")

10.Mathf.绝对值、乒乓、插值、开方

Mathf.Abs

Mathf.Pingpang

Mathf.Lerp

Mathf.Sqrt

11.Random.值和区间

Random.value

Random.Range(int,[)/ float[])

12.刚体和4种碰撞器;

RigidBody,

BoxCollider

CapsuelCollider

SphereCollider

MeshCollider

TerrainCollider

13.刚体碰撞和触发的6个方法14.给刚体施加力和力矩

AddForce

AddTorque

AddRelativeForce

AddRelativeTorque

15.寻路导航,代理,障碍,分离网格

Navigation

Nav Mesh Agent

Nav Mesh Obstacle

Off Mesh link

16.射线检测的方法。

Ray ray=Camera.main.ScreenPointToRayRaycastHit hit;Physics.RayCast(ray,out hit,distance,layerMask)Physics.RayCast(start,end);

17.材质

gameObject.GetComponent().Material.Color/mainTexture

18.角色控制器

CharactorController.Move/SimpleMove

19.线渲染和拖尾

Line Renderer

Trail Renderer

20.基础几何体

21.常见异常

NullRefrenceException

UnassignedException

MissingComponetException

IndexOutOfRangeException

Argument

22.画布3种模式

Overlay

Camera

World

23.常用设计分辨率?

1136x640

1334*750

1280*720

16:9

24.Button点击事件,脚本添加?

Button btn;

btn.onClick.AddListener(函数,匿名函数,larmda);

25.布局管理器?

GridLayout

HorizonLayout

VerticalLayout

-------------

Content Size Fitter

26.EventSystem事件接口?

点击

IPointerClick,Enter,Exit,Down,Up

拖拽

IDrag/IBeginDrag/IEndDrag/IDrop

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容