5.15考试试题

1.委托有匿名委托,不是必须带有委托名

委托可以把一个方法作为参数代入另一个方法;

事件可以看做是一种特殊的委托

委托可以理解为指向一个函数的引用(指针)

2.IK动画不是只有人型动画才能设置,只要有avarar都可以设置IK动画

3.RectTransform是Transform 的子物体,有Transform 的全部特征,Unity UI系统使用Rectform实现基本的布局和层次控制,在Inspector界面上,为了更方便的调节RectTransform的属性,锚点的两个点重合时会显示位置和宽高.RectTransform组件负责组织GameObject的层级关系.

4.使用IK动画要实现系统自带函数OnAnimatorIK(int LayerIndex)

5.Blend Tree:1D一个方向整合

                2D Freeform Directional,同一方向上可以有多个动画,不建议有动作相似的动画。

                        2D Freedform Cartesian,可以在X轴和Y轴使用不同的定义,自有定义动作

                        Direct融合表情

6.动画遮罩和IK:可以给全身添加IK,不是只有人形动画才能设置IK,只要有avator都能设置IK

7.声音视频资源不能作为预设体,图片转为精灵之后可以作为预设体

8.四元数相对于欧拉角的有点:1)能进行增量旋转(插值,缓动旋转)

                                                  2)避免万向节锁

                                                  3)给定方位的表达方式有两种,互为负(欧拉角有无数种表达方式)

任意选择⼀一个场景(如果电脑性能不不佳,  直接使⽤用Plane及Cube等搭建⼀一个简单场景),选择⼀一个⻆角⾊色,⼩小地图(可显示场景,玩家,及可拾拾取和不不可拾拾取物品),随机产⽣生可拾拾取物品和不不可拾拾取物品,玩家通过⿏鼠标点击控制⻆角⾊色移动(使⽤用导航);(20)可拾拾取物品:拾拾取后玩家能看到实时的显示(显示⽅方式⾃自定)(10);不不可拾拾取物品,拾拾取后减少玩家剩余游戏时间(游戏以时间为计时,减少数值⾃自定义);(10)游戏结束显示结束界⾯面,显示玩家最终得分(以拾拾取到的物体数为基准,⾃自定义等分规则)(5)玩家游戏时间结束,播放玩家死亡动画,(5)

(⽂文件管理理,代码规范);

using UnityEngine;

using System.Collections;

public class PlayerScript : MonoBehaviour {

public delegate void PlayerTriggerDelegate (bool isGood);

public event PlayerTriggerDelegate playerTriggerEvent;

Animator animator;

NavMeshAgent agent;

void Start ( ) {

animator = GetComponent<Animator>( );

agent = GetComponent<NavMeshAgent>( );

}

void Update ( ) {

if (Input.GetMouseButtonDown (0)) {

RaycastHit hit;

if (Physics.Raycast (Camera.main.ScreenPointToRay (Input.mousePosition), out hit)) {

if (hit.collider.tag == "Walkable") {

transform.LookAt (hit.point);

animator.SetBool (Animator.StringToHash ("WalkParams"), true);

agent.destination = new Vector3 (hit.point.x, transform.position.y, hit.point.z);

}

}

}

if (agent.remainingDistance <= 0.1) {

if (animator.GetCurrentAnimatorStateInfo (0).IsName ("HumanoidWalk")) {

animator.SetBool (Animator.StringToHash ("WalkParams"), false);

}

}

}

void OnTriggerEnter (Collider other) {

if (other.tag == "Good") {

playerTriggerEvent (true);

Destroy (other.gameObject);

} else if (other.tag == "NotGood") {

playerTriggerEvent (false);

Destroy (other.gameObject);

}

}

}



using UnityEngine;

using System.Collections;

using UnityEngine.SceneManagement;

public class GameController : MonoBehaviour {

public PlayerScript playerScr;

public UIManager uiManager;

public float remainingTime = 60.0f;//游戏剩余时间

public float gameScore;//游戏成绩

public GameObject goodPerfabs;

public GameObject notGoodPerfabs;

private float time = 1.0f;

private bool isDead;

void Start ( ) {

playerScr = GameObject.Find ("Ethan").GetComponent<PlayerScript>( );

playerScr.playerTriggerEvent += ChangeData;

uiManager = GameObject.Find ("Canvas").GetComponent<UIManager>( );

}

void Update ( ) {

time += Time.deltaTime;

remainingTime -= Time.deltaTime;

if (remainingTime > 0) {

//刷新UI的计时

uiManager.time = remainingTime;

if (time >= 2f) {

int number = Random.Range (0, 2);

GameObject anything;

if (number == 0) {

anything = Instantiate (goodPerfabs) as GameObject;

Destroy (anything, 4.0f);

} else {

anything = Instantiate (notGoodPerfabs) as GameObject;

Destroy (anything, 6.0f);

}

anything.transform.position = GetAbledPostion ();

anything.transform.rotation = Quaternion.identity;

time = 0.0f;

}

} else {

uiManager.time = 0.0f;

if (!isDead) {

//播放死亡动画

GameObject.Find ("Ethan").GetComponent<Animator>().SetTrigger (Animator.StringToHash ("DeadParams"));

isDead = true;}

//并且弹出游戏失败界面

//获取动画时长

float clipLength = GameObject.Find ("Ethan").GetComponent<Animator>( )

.GetCurrentAnimatorClipInfo (0)[0].clip.length;

Invoke ("LoadGameOverScene", clipLength + 0.5f);

PlayerPrefs.SetFloat ("Score", gameScore);

}

}

//加载游戏结束场景

void LoadGameOverScene () {

SceneManager.LoadScene (1);

}

Vector3 GetAbledPostion () {

ArrayList colliders = new ArrayList ();

Vector3 pos;

do {

float x = Random.Range (-4.75f, 4.75f);

float z = Random.Range (-4.75f, 4.75f);

pos = new Vector3 (x, 0.5f, z);

colliders = new ArrayList (Physics.OverlapSphere (pos, 0.3f));

} while (colliders.Count > 0);

return pos;

}

public void ChangeData (bool isGood) {

if (isGood) {

gameScore += 2;

//刷新UI界面

uiManager.score = gameScore;

} else {

remainingTime -= 10.0f;

//刷新UI界面

uiManager.time = remainingTime;

}

}

}



using UnityEngine;

using System.Collections;

using UnityEngine.UI;

public class UIManager : MonoBehaviour {

public float score {

set {

scoreText.text = "得分 :" + value.ToString();

}

}

public float time {

set {

timeText.text = "剩余时间 :" + value.ToString("0.00");

}

}

Text scoreText;

Text timeText;

void Awake () {

scoreText = transform.GetChild (0).GetChild (0).gameObject.GetComponent<Text>();

timeText = transform.GetChild (0).GetChild (1).gameObject.GetComponent<Text>();

}

// Update is called once per frame

void Update () {

}

}



using UnityEngine;

using System.Collections;

using UnityEngine.UI;

public class GetScoreScript : MonoBehaviour {

Text finallScoreText;

void Awake () {

finallScoreText = GetComponentInChildren<Text>();

}

void Start () {

finallScoreText.text = "最终得分为 :" + PlayerPrefs.GetFloat ("Score").ToString("0.0");

}

void Update () {

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容