unity 基本函数整理[4_Unity脚本 + 5_游戏元素的设计]
来源:互联网 发布:ipad下不了软件 编辑:程序博客网 时间:2024/04/28 02:16
Update() 每一帧执行一次
LateUpdate() 在Update后执行,同样也是每帧执行一次
Awake() 在Start()函数前执行,用以初始化
FixedUpdate() 固定更新
Start() 初始化
OnDestroy() 销毁对象 --> Destroy(this.gameObject);
OnGUI() 每一帧都调用
获取游戏对象:
旋转
通过Tags获取游戏对象
新建Tags “plants”,并将标签赋予给游戏对象,
判断标签是否包含TestTag:
添加组件
添加刚体组件
using UnityEngine;
using System.Collections;
public class MyAddComponent : MonoBehaviour {
GameObject obj = null;
// Use this for initialization
void Start () {
obj = GameObject.Find ("Cube");
}
// Update is called once per frame
void Update () {
}
void OnGUI(){
if (GUI.Button (new Rect (150, 30, 150, 30), "add Component")) {
obj.AddComponent ("FindGameObject");
}
}
}
删除组件
GameObject的变换:
得到对象的尺寸
LateUpdate() 在Update后执行,同样也是每帧执行一次
Awake() 在Start()函数前执行,用以初始化
FixedUpdate() 固定更新
Start() 初始化
OnDestroy() 销毁对象 --> Destroy(this.gameObject);
OnGUI() 每一帧都调用
创建游戏对象:
using UnityEngine;using System.Collections;public class CreatObject : MonoBehaviour {GameObject obj;void OnGUI(){if(GUILayout.Button("create Cube",GUILayout.Height(20))){obj = GameObject.CreatePrimitive(PrimitiveType.Cube);//obj.AddComponent(Rigidbody);obj.name = "yoho";obj.renderer.material.color = Color.blue;obj.transform.position = new Vector3(0,0,0);}}}
获取游戏对象:
GameObject obj = GameObject.Find("Cube");GameObject obj = GameObject.FindGameObjectWithTag("plants");
旋转
GameObject obj = GameObject.FindGameObjectWithTag("plants");obj.transform.Rotate (Vector3.up * Time.deltaTime * 5); obj.transform.Rotate (new Vector3(0,1,0)); obj.transform.Rotate (0.0f,Time.deltaTime * 200, 0.0f);
通过Tags获取游戏对象
新建Tags “plants”,并将标签赋予给游戏对象,
using UnityEngine;using System.Collections;public class FindGameObject : MonoBehaviour {GameObject[] objs = null;void Start () {objs = GameObject.FindGameObjectsWithTag ("plants");}void OnGUI(){if (GUI.Button (new Rect (100, 50, 150, 30), "change material")) {objs [0].renderer.material.color = Color.blue;objs [1].renderer.material.color = Color.red;}}}判断标签是否为TestTag:
if(obj.tag == "TestTag"){}
判断标签是否包含TestTag:
if(obj.CompareTag("TestTag")){}
添加组件
添加刚体组件
<pre name="code" class="csharp">//正确:big.AddComponent<Rigidbody>();//错误:big.AddComponent (Rigidbody);
using UnityEngine;
using System.Collections;
public class MyAddComponent : MonoBehaviour {
GameObject obj = null;
// Use this for initialization
void Start () {
obj = GameObject.Find ("Cube");
}
// Update is called once per frame
void Update () {
}
void OnGUI(){
if (GUI.Button (new Rect (150, 30, 150, 30), "add Component")) {
obj.AddComponent ("FindGameObject");
}
}
}
脚本之间消息的传送机制:广播机制
产生克隆对象 [Instantiate]
using UnityEngine;using System.Collections;public class MyAddComponent : MonoBehaviour {GameObject obj = null;float i = 1.0f;Vector3 pos;void Start () {obj = GameObject.Find ("Sphere");pos =obj.transform.position;}void OnGUI(){if (GUI.Button (new Rect (150, 30, 150, 30), "add Component")) {pos.x += i;GameObject clone = (GameObject)Instantiate(obj,pos,Quaternion.identity);Destroy(clone,5);}}}
删除组件
Destroy(obj.GetComponent<FindGameObject>());
GameObject的变换:
obj.transform.position = new Vector3(x,y,z);//移动//this.transform.Translate (Vector3.forward * Time.deltaTime); //this.transform.Translate (Vector3.right * Time.deltaTime); //this.transform.Translate (Vector3.up * Time.deltaTime); //旋转//this.transform.Rotate (Vector3.up * Time.deltaTime * 5); //this.transform.Rotate (new Vector3(0,1,0)); sma.transform.RotateAround (big.transform.position,Vector3.forward,Time.deltaTime * 25);//缩放:obj.transform.localScale = Vector3(scaleX,scaleY,scaleZ);
主线程等待:
//略...
随机数:
Random.Range(0, 100);Random.Range(0.0f, 100.0f);
得到对象的尺寸
float size_X = plane.GetComponent<MeshFilter>().mesh.bounds.size.x;float size_Y = plane.GetComponent<MeshFilter>().mesh.bounds.size.y;float size_Z = plane.GetComponent<MeshFilter>().mesh.bounds.size.z;float scale_X = plane.transform.localScale.x;maxWidth = scale_X * size_X;
【5_游戏元素的设计】
I、地形的设计
Create -> Terrain
地形的设置共有7个按钮:
依次为:
1、设置地形高度,(按住shift建则减小高度)
2、设置地行动同等高度
3、润化地形元素,使地形圆滑、
4、画笔,设置地形的纹理
5、设置树木的贴图,以及在地形上栽种树木
6、设置草坪的贴图,以及在地形上种植草坪
7、对地形进行整体上的设置
II、灯光的设计
//略....
III、SkyBoxs
IV、摄像机
Camera设置参数:
Clear Flags:设置背景的显示内容
Culling Mask:设置某些层是否显示
View Rect: 设置摄像机在游戏界面的显示范围
6、物理引擎
Component -> Physics -> Rigidbody
Is Kinematic:
选中,则表示物体的运动依靠脚本进行运动
不选,表示物体所有的运动依靠物理引擎模拟实现
0 0
- unity 基本函数整理[4_Unity脚本 + 5_游戏元素的设计]
- unity随笔_unity存档
- Unity脚本设计_①C#在Unity中运用的理解
- Unity基础1_脚本的认识
- unity 的游戏脚本组件的生命周期
- Unity中扫雷游戏的脚本编写
- 【Unity常识】游戏对象及脚本的状态与Start等函数的调用关系
- Unity 游戏脚本解密
- Unity 游戏脚本
- Logo设计的基本元素
- [游戏]_元素49
- Unity入门学习 //01_Unity界面分布
- unity 基本函数整理[3_GUI控件+GUILayout界面布局]
- Unity游戏暂停,控制时间的设计
- 游戏基本元素1
- 游戏基本元素2
- Unity脚本函数的执行顺序
- 【Unity】动态调用其他脚本的函数
- MFC学习笔记——关于图片加载
- C#设计模式总结
- 继承与派生2
- 日拱一卒(三)
- 百度地图开发(五)之公交信息检索 + 路线规划
- unity 基本函数整理[4_Unity脚本 + 5_游戏元素的设计]
- C/C++预编译指令
- 超全面的.NET GDI+图形图像编程教程
- swift代理传值
- 多态性1
- 预言~~~~
- Windows驱动开发(一)——环境搭建
- HDU2544 最短路 Bellman-Ford实现
- swift学习笔记