1、吃豆人:通过键盘控制人物的移动 当人物碰到敌人时,敌人消失
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class cdr : MonoBehaviour {
public GameObject sq;
public GameObject cube;
void Start () {
Instantiate(sq);
for (int i = 0; i < 15; i++)
{
float x = Random.Range(-4.5f, 4.5f);
float z = Random.Range(-4.5f, 4.5f);
Instantiate(cube, new Vector3(x, 0.15f, z), Quaternion.Euler(0, 0, 45));
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class q : MonoBehaviour {
float speed=3;
void Update()
{
Rigidbody r = GetComponent<Rigidbody>();
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 pos = new Vector3(h, 0, v);
r.velocity = pos * speed;
}
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("EN"))
{
Destroy(other.gameObject);
}
}
}
- 游戏开始3秒后,在游戏场景中不同位置(x:0--10 z:2--8)随机同时克隆3个游戏物体
void Start()
{
StartCoroutine(AA());
}
IEnumerator AA()//15.
{
while (true)
{
yield return new WaitForSeconds(3f);
for (int i = 0; i < 3; i++)
{
int x = Random.Range(0, 10);
int z = Random.Range(2, 8);
Instantiate(cube, new Vector3(x, 0, z), Quaternion.identity);
}
}
}
面试题
一:什么是协同程序?
在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足。
二:Unity3d中的碰撞器和触发器的区别?
碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器
三:物体发生碰撞的必要条件?
两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体,而且必须是运动的物体带有Rigidbody脚本才能检测到碰撞。
四:CharacterController和Rigidbody的区别
Rigidbody具有完全真实物理的特性,Unity中物理系统最基本的一个组件,包含了常用的物理特性,而CharacterController可以说是受限的的Rigidbody,具有一定的物理效果但不是完全真实的,是Unity为了使开发者能方便的开发第一人称视角的游戏而封装的一个组件
五:简述prefab的用处(预设体)
在游戏运行时实例化,prefab相当于一个模板,对你已经有的素材、脚本、参数做一个默认的配置,以便于以后的修改,同时prefab打包的内容简化了导出的操作,便于团队的交流。
六:在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数
三个阶段,1.OnCollisionEnter 2.OnCollisionStay 3.OnCollisionExit
七:Unity3d的物理引擎中,有几种施加力的方式,分别描述出来
rigidbody.AddForce/AddForceAtPosition,都在rigidbody系列函数中。大家可以自己去查看一下rigidbody的API
八:Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。
Awake——>OnEnable–>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>OnDisable——>OnDestroy