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

#pragma strict

var 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 zhuang var 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 strict

import 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 strict

private 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;
}
else
wenzi.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 strict

function 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

unity 3d孤岛求生案例代码解析的更多相关文章

  1. 使用 Unity 3D 开发游戏的架构设计难点

    Unity 3D 引擎对于开发者来说,入手非常快,因为它采用的是 C# 作为开发语言,这也大大降低了开发者的门槛.但凡只要懂一门编程语言的人都能使用 Unity 3D 引擎开发,另外 Unity 3D ...

  2. (转)stage 3d or unity 3d

    这个是这样子的.stage3d如果不使用flascc的话,性能会卡在as上面.你没卡是因为你用的效果还不够高级.往深了走的高端应用就是卡as性能上.这不是你代码能优化了的.我们后来都改用flascc写 ...

  3. unity 3d开发的大型网络游戏

    unity 3d开发的大型网络游戏 一.总结 1.unity的官网上面应该有游戏列表 2.unity3D是很好的3d游戏引擎,也支持2d,也能做很多画面精良的3A级游戏 3.范围:电脑游戏,手机游戏, ...

  4. 出售一套Unity + Lua热更新框架代码

    出售一套Unity + Lua的客户端框架代码,功能有资源管理.网络通信.配置文件解析.热更新.文件读写.Lua加密揭秘.UI框架.打包工具.编辑器工具等,已经在多个实际项目(已上线)中使用.代码优雅 ...

  5. 另类Unity热更新大法:代码注入式补丁热更新

    对老项目进行热更新 项目用纯C#开发的? 眼看Unity引擎热火朝天,无数程序猿加入到了Unity开发的大本营. 一些老项目,在当时ulua/slua还不如今天那样的成熟,因此他们选择了全c#开发:也 ...

  6. Unity 3D 游戏上线之后的流水总结

    原地址:http://tieba.baidu.com/p/2817057297?pn=1 首先.unity 灯光烘焙 :Unity 3D FBX模型导入.选项Model 不导入资源球.Rig 不导入骨 ...

  7. C#程序员整理的Unity 3D笔记(十五):Unity 3D UI控件至尊–NGUI

    目前,UGUI问世不过半年(其随着Unity 4.6发布问世),而市面上商用的产品,UI控件的至尊为NGUI:影响力和广度(可搜索公司招聘Unity 3D,常常能看到对NGUI关键词). NGUI虽然 ...

  8. C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想

    如果你接触过<设计模式>.软件架构的编程思想,就会知道优秀的设计准则:“组合优于继承的”. 这句话很简短,但开始学习OOP的时候,真切的是—-不太好理解(以我个人当初学习为例). OOP的 ...

  9. 【图说】Eclipse与Unity 3D协同工作

    原地址:http://blog.csdn.net/h570768995/article/details/9355313 Eclipse开发过程中总会碰到很多的难题,如何利用好工具帮助我们更快捷的开发也 ...

随机推荐

  1. PLSQL Developer图形化窗口创建数据库全过程

    1.用系统管理员登陆,我这里用户名是system,密码是manager2.首先建立表空间(tablespaces),点击file->new->sql window   create tab ...

  2. java安全沙箱(四)之安全管理器及Java API

    java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...

  3. dubbo工作原理

    part -- 外挂1.dubbo借助spring的schema启动和初始化 1.1 spring扫描所有jar下META-INF的spring.handlers和spring.schemas. 1. ...

  4. [REP]AWS Regions and Availability Zones: the simplest explanation you will ever find around

    When it comes to Amazon Web Services, there are two concepts that are extremely important and spanni ...

  5. 【解决】org.apache.hadoop.util.Shell$ExitCodeException: /bin/bash: line 0: fg: no job control

    [环境信息] Hadoop版本:2.4.0 客户端OS:Windows Server 2008 R2 服务器端OS:CentOS 6.4 [问题现象] 在通过Windows客户端向Linux服务器提交 ...

  6. ThrottleAttribute

    /// <summary> /// Decorates any MVC route that needs to have client requests limited by time. ...

  7. Ubuntu Java Envrioment

    Download Java SDK and Install 1. Download Java SDK from Oracle websit 2.unzip by command line tar -z ...

  8. Windows Linux 之间rsync同步CODE文件

    Windows Linux 之间rsync同步CODE文件 一.环境Windows:OS:Microsoft Windows Web Server 2008 SP1IP:192.168.88.197 ...

  9. CSS3中box-sizing的理解

    box-sizing属性可以为三个值之一:content-box(默认),border-box,padding-box,inherit(继承父级box-sizing 属性的值.) content-bo ...

  10. java文件名更改一直是false,看看是否是文件打开没有关

    // 更改文件名称 public static void chenckFileName(String oldFile, String newFileName) { File file = new Fi ...