关于Unity3D的一些笔试题(2)

1.Camera中depth值大小的意义?

Depth 深度绘图顺序中的相机位置,具有较大值的相机将被绘制在具有较小值的相机的上面 


2.两个摄像机,一个MainCamera,一个UICamera,怎样在场景中只显示一个UICamera中的UI?

UICamera脚本是所有功能性UI的关键组件。它的责任是向它所在的摄像机渲染出来的所有有碰撞体的对象发送NGUI事件。如果在场景中你有一个摄像机,确保它上面挂载了UICamera脚本。如果你有多个摄像机,确保至少有一个用于渲染UI的摄像机挂载了UICamera。将这个脚本挂载在场景的主摄像机上,你场景中具有碰撞和的物体就可以接收到诸如OnClick,OnHover,OnDrag等NGUI事件。


3.两个物体碰撞的必要条件以及触发的3个函数?

两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体

触发信息检测:

(1).MonoBehaviour.OnTriggerEnter( Collider other )当进入触发器

(2).MonoBehaviour.OnTriggerExit( Collider other )当退出触发器

(3).MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器

碰撞信息检测:

(1).MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 当进入碰撞器

(2).MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 当退出碰撞器

(3).MonoBehaviour.OnCollisionStay( Collision collisionInfo )  当逗留碰撞器

4.Animation中的播放动画的两个函数?

播放动画的时候使用Play()或CrossFade(),直接播放动画 或淡入淡出播放动画。

5.按钮点击地面,地面生成一个Cuble对象的代码(射线检测方式去做)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class 
My_Span : MonoBehaviour {
    public GameObject Cuble;
    private RaycastHit hit;
// Update is called once per frame
void Update () {
        if (Input.GetMouseButtonDown(0))
        {
            //发出一条射线
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            //与碰撞其发生碰撞
            bool m = Physics.Raycast(ray, out hit);
            //创建模型
            GameObject Player = Instantiate(Cuble, hit.point, Quaternion.identity);
            Destroy(Player.gameObject, 5f);       
        }       

    }
}

6.写出Unity中事件函数初始化和更新的函数它们的作用?

Start当前控制脚本第一次执行Update之前调用。
Update每帧都执行一次。这是最常用的事件函数。


7.Camera中Clip Plane中的Near=0.3和Far=1000表示什么?

Near 近点开始描绘的相对于相机最近的点。 
Far 远点开始描绘的相对于相机最远的点。


8.如何获取组件和销毁游戏组件?

用GameObject.Find("游戏对象名").GetComponent<组建名>().具体属性
Destroy();

猜你喜欢

转载自blog.csdn.net/ji2570489271/article/details/78666901
今日推荐