这是第一人称控制器脚本,如果把摄像机放在胶囊体后面感觉就是第三人称了啊。

#pragma strictvar speed : float = 6.0;
var jumpspeed: float = 8.0;
var gravity :  float = 20.0;
private var movedirection: Vector3 = Vector3.zero;
private var grounded: boolean = false;
private var qiqiu: boolean = false;function FixedUpdate () {qiqiu = chufaqiqiu.power_q;if (grounded){movedirection = Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical"));movedirection = transform.TransformDirection(movedirection);movedirection *= speed;if (Input.GetButton("Jump")){movedirection.y = jumpspeed;}if (Input.GetKey(KeyCode.Q))transform.Rotate(0,-25*Time.deltaTime,0,Space.Self);if (Input.GetKey(KeyCode.E))transform.Rotate(0,25*Time.deltaTime,0,Space.Self);if (Input.GetKey(KeyCode.W) && qiqiu){movedirection.x *= 2;movedirection.z *= 2;}}movedirection.y -= gravity*Time.deltaTime;var controller: CharacterController = GetComponent(CharacterController);var flags = controller.Move(movedirection*Time.deltaTime);grounded = (flags & CollisionFlags.CollidedBelow) != 0;}
@script RequireComponent(CharacterController)

下面是碰撞器脚本

#pragma strict
@script RequireComponent(AudioSource)
import UnityEngine.UI;var tong_sound: AudioClip;
private var pzhuangtime: float = 0.0;
private var pzhuang: boolean = false;
private var pzhuangobject: GameObject;var pzhuang_time: float = 3.0;
var wenzi: Text;/* guang xian tou she peng zhuangvar hit: RaycastHit;
if (Physics.Raycast(transform.position,transform.forward,hit,3)){if(hit.collider.gameObject.tag == "hudie"){var pzhuangobject: GameObject = hit.collider.gameObject;pzhuangobject.SendMessage("mou ge han shu");
*/
function Update(){//peng zhuang ji shi.if(pzhuang){pzhuangtime += Time.deltaTime;print (pzhuangtime);}
}function OnControllerColliderHit(hit: ControllerColliderHit){/*if(hit.gameObject.tag == "tong"){hit.gameObject.GetComponent.<AudioSource>().PlayOneShot(tong_sound);}*///peng liang ci hu die cai hui xiao shi.if(hit.gameObject.tag == "hudie"){if(inventory.charge > 4){pzhuang = true;wenzi.text = "有本事,再碰我一下!";}else{wenzi.text = "想抓我,呵呵&……*"; wenzi.enabled = true;}if(pzhuangtime > pzhuang_time){hit.gameObject.GetComponent.<Animation>().Play("fly");wenzi.text = "我可以飞的更高SB。";pzhuangtime = 0.0;pzhuang = false;inventory.charge++;}}}

下面是光线透射脚本。这脚本编译没错,但是功能没有实现。

#pragma strict
import UnityEngine.UI;function Updata(){var hit: RaycastHit;if (Physics.Raycast(transform.position,transform.forward,hit,3)){if(hit.collider.gameObject.tag == "tong"){var pzhuangobject: GameObject = hit.collider.gameObject;gameObject.Find("Canvas/tong").GetComponent(Text).text = " 这是一个桶 ";}}
}

下面是触发器合集。

#pragma strict
import UnityEngine.UI;static var power_t: boolean = false;
private var pow_time: float = 0.0;
private var speed: float = 0.0;
private var wenzi_time: float = 0.0;
var wenzi: Text;function Start(){}function Update(){if (power_t == true){pow_time += Time.deltaTime;gameObject.Find("FPControl").GetComponent(fpcyidong).jumpspeed = 16.0;}if (pow_time > 60.0){power_t = false;gameObject.Find("FPControl").GetComponent(fpcyidong).jumpspeed = 8.0;pow_time = 0.0;}if (wenzi.enabled){wenzi_time += Time.deltaTime;if (wenzi_time > 10.0){wenzi.enabled = false;wenzi_time = 0.0;}}
}
function OnTriggerEnter(col:Collider){if(col.gameObject.tag == "Player"){//transform.FindChild("door").SendMessage("dooropen");//col.gameObject.SendMessage("pickup");wenzi.text = "这是一个魔力桶,获得60秒超级跳!";power_t = true ;wenzi.enabled = true;//Destroy(gameObject.transform.parent.gameObject);}}

#pragma strict
import UnityEngine.UI;static var power_q: boolean = false;
var wenzi: Text;
function Start () {}function OnTriggerEnter(col:Collider){if(col.gameObject.tag == "Player"){wenzi.text = "这是一个神奇的球,获得终身W冲刺";power_q = true ;wenzi.enabled = true;}
}

#pragma strict
import UnityEngine.UI;
var wenzi: Text;function OnTriggerEnter(col:Collider){if(col.gameObject.tag == "Player"){if(inventory.charge > 5){wenzi.text = "啊我再飞#¥!";Destroy(gameObject);Destroy(gameObject.Find("WaterBasicDaytime"));wenzi.enabled = true;}}

#pragma strictimport UnityEngine.UI;
import UnityEngine.SceneManagement;var wenzi: Text;function OnTriggerEnter(col:Collider){if(col.gameObject.tag == "Player"){wenzi.text = "GAME OVER WISH TO NEXT TIME";Destroy(col.gameObject);wenzi.enabled = true;SceneManager.LoadScene("02");}
}

#pragma strict
import UnityEngine.UI;var wenzi: Text;function OnTriggerEnter(col:Collider){if(col.gameObject.tag == "Player"){wenzi.text = "GAME OVER";Destroy(col.gameObject);wenzi.enabled = true;}
}

#pragma strictprivate var chufatime: float = 0.0;
private var chufa: boolean = false;
private var chufaobject: GameObject;var chufa_time: float = 3.0;
var collecthudie: AudioClip;
var wenzi : Text;function Update(){if(chufa){chufatime += Time.deltaTime;print(chufatime);}
}function OnTriggerEnter(col:Collider){if(col.gameObject.tag == "Player"){if (inventory.charge > 4){chufa = true;}elsewenzi.text = "bang wo na jige xiang zi lai";if(chufatime > chufa_time){gameObject.GetComponent.<Animation>().Play("fly");AudioSource.PlayClipAtPoint(collecthudie,transform.position);chufatime = 0.0;chufa = false;}}
}

下面是旋转和变色脚本

#pragma strictfunction Update () {transform.Rotate(0,100*Time.deltaTime,0);}
function OnTriggerEnter(col:Collider){if(col.gameObject.tag == "Player"){//transform.FindChild("door").SendMessage("dooropen");col.gameObject.SendMessage("pickup");Destroy(gameObject);}
}

#pragma strict
var t:float = 0;function Start () {}function Update () {t += Time.deltaTime;if (t <= 2){GetComponent.<Renderer>().material.color = Color.blue;}else if (t > 2 && t <= 5){GetComponent.<Renderer>().material.color = Color.red;}else{GetComponent.<Renderer>().material.color = Color.green;}if (t > 7)t = 0;}

下面是收集物品脚本,另一内建数组var cms:Renderer[];    for(var co:Renderer in cms){co.material.color = Color.red;},给数组内所有对象的  渲染器组件  染色。

#pragma strict
import UnityEngine.UI;static var charge: int = 0;
var collectSound: AudioClip;var powerui_raw: RawImage;
var textures: Texture2D[];
var wenzi: Text;function Start () {charge = 0;
}
function pickup(){AudioSource.PlayClipAtPoint(collectSound,transform.position);charge++;wenzi.text = "哎呀获得一个箱子";powerui_raw.texture = textures[charge];wenzi.enabled = true;print (charge);}

最后是游戏开始脚本

#pragma strict
import UnityEngine.SceneManagement;function OnGUI(){if(GUI.Button(Rect(180,100,60,30),"退出")){Application.Quit();}if(GUI.Button(Rect(280,100,60,30),"开始")){Application.LoadLevel("01");}}
function Update(){if (Input.GetKey(KeyCode.Q))transform.Rotate(0,-25*Time.deltaTime,0,Space.Self);if (Input.GetKey(KeyCode.E))transform.Rotate(0,25*Time.deltaTime,0,Space.Self);
}

loadlevel是能用的但是过时了,用LoadScene

转载于:https://www.cnblogs.com/white-L/p/6179762.html

unity 3d孤岛求生案例代码解析相关推荐

  1. Unity 3D 刚体(Rigidbody)|| Unity 3D 刚体实践案例

    Unity 3D 中的 Rigidbody 可以为游戏对象赋予物理特性,使游戏对象在物理系统的控制下接受推力与扭力,从而实现现实世界中的物理学现象. 我们通常把在外力作用下,物体的形状和大小(尺寸)保 ...

  2. [JAVA-周瑜]dubbo-Rpc调用案例代码解析

    dubbo3.0-Rpc调用案例代码解析 ​ 根据周瑜所讲的Dubbo3.0视频原理解析视频和内容,对源码的内容进行总结分析.视频源为[Dubbo3.0]地表最强!Dubbo快速入门教程,通俗易懂(3 ...

  3. 【Vue】Vue中传值的几种方法,案例代码解析

    目录 一.反向传值(子组件传值给父组件) 二.$refs 三.$parent 四.$children 五.$attrs/$listeners -----多层传值 六.$root ----根组件 七.依 ...

  4. 查询php copy函数源码,PHP copy函数使用案例代码解析

    copy-拷贝文件 说明 copy(string$source,string$dest[,resource$context]):bool 将文件从source拷贝到dest. 如果要移动文件的话,请使 ...

  5. php 跳转qq群代码_一个简单QQ群聊案例代码解析(PHP实现)

    问题: 使用面向对象编程的方式实现以下业务逻辑: 1. 张三使用账号a,密码b登录了qq 2. 显示出张三最后的登录的时间 3. 张三查看了 1小时内的行政部门群的信息(这个群里有张三,李四,王五,其 ...

  6. Unity 3D 屏幕适配全方面解析!

    转载自 https://www.jianshu.com/p/95cb4621206e 1.游戏屏幕适配 屏幕适配是为了让我们的项目能够跑在各种电子设备上(手机,平板,电脑) 那么了解是适配之前首先要了 ...

  7. 【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)

    需要源码和资源包请点赞关注收藏后评论区留言私信~~~ 下面我们用Unity 3D搭建一个飞机在跑道上喷火起飞的3D游戏案例,效果如下面的图片和视频所示 一.效果演示 视频如下 VR飞机 二.实现步骤 ...

  8. Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D C#: Learn To Code Making 3D Games

    Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D & C#: Learn To Code Making 3D Games Full Guide To Unit ...

  9. 《Unity 3D 游戏开发技术详解与典型案例》——1.3节第一个Unity 3D程序

    本节书摘来自异步社区<Unity 3D 游戏开发技术详解与典型案例>一书中的第1章,第1.3节第一个Unity 3D程序,作者 吴亚峰 , 于复兴,更多章节内容可以访问云栖社区" ...

最新文章

  1. 单例模式和HttpContext线程内唯一
  2. Gtk-WARNING**:无法在模块路径中找到主题引擎:“pixmap”的解决
  3. lottie插件_RN常用插件集
  4. Leetcode之二叉树(前200道)
  5. 机器学习基于skcilearn tensorflow电子书_Tensorflow机器学习模型的跨平台上线
  6. OpenCore 的代码结构
  7. 追踪 Kubernetes 中的网络流量
  8. hive分桶表join_Hive知识梳理
  9. 怎么看linux的命令说明,在linux下,怎么用命令来查看版本?
  10. 如何在 Mac 上使用“隔空投送”?
  11. ZOJ 3430 Detect the Virus(AC自动机 + 模拟)题解
  12. 怎么用计算机算e的次方,如何在计算器上计算e的x次方?
  13. 大数据信息安全问题有哪些
  14. 小程序商城如何精细化运营?
  15. bzoj 4484 [Jsoi2015]最小表示——bitset
  16. 对话Digital FUN和TEA社区创始人Totti#MiXTalk004
  17. 第二届“大数据在清华”高峰论坛,敬请期待!
  18. 路由器5G WiFi不工作维修分析
  19. 安卓平台 使用Jword生成word文档到本地【亲测成功】
  20. 【CV】对比学习经典之作 SimLR 论文笔记

热门文章

  1. 关于NetSuite中需求计划的几个理解
  2. nginx的平滑升级
  3. 常用的Linux 系统监控工具
  4. C#要点技术(二) - Dictionary 底层源码剖析
  5. 【JS】网页点击悬浮小苹果+小虫子追踪鼠标位置(可替换)
  6. 刚刚!鸿蒙OS 2升级用户破千万!(1000+企业共建鸿蒙生态)
  7. 香港十大黄金投资公司排名榜单(2022最新版)
  8. 六十甲子亡命安葬山向宜忌
  9. 《MLB棒球创造营》:走近棒球运动·德州游骑兵队
  10. 山东法律学校97级计算机班,我校计算机学院97级计算机专业校友重聚母校