unity(script)常用方法汇总
新建一个GameObject
public class Scriptname :MonoBehaviour {
GameObject hello
//这个gameobject只会在被执行的时候创建
void Start () {
hello = new GameObject ("hello");
}
}
获取并且改变一个GameObject的颜色(5.1 version)
public class Scriptname :MonoBehaviour {
void Start() {
gameObject.GetComponent<Renderer>().material.color = Color.red;
}
}
//获取一个非挂载的object改变颜色(public挂载)
public GameObject hello
public class Scriptname :MonoBehaviour {
void Start() {
hello.GetComponent<Renderer>().material.color = Color.red;
}
}
//使用GameObject.Find()
//GameObject hello = GameObject.Find ("Cube");
//hello.GetComponent<Renderer>().material.color = Color.red;
运行实例化预设(Prefabs)
public class Instantiation :MonoBehaviour { void Start() { Instantiate(original, position, rotation, parent, instantiateinWorldSpace); } }
- original:你要复制的预设对象
- position:位置 (Vetory3)
- rotation:旋转角度
- parent:分配给新对象的父级
- instantiateinWorldSpace:是否根据新父对象相对位置 (boolen)
使用unity的物理引擎
unity 内置NVIDIA PhysX物理引擎,要使用物理控制对象只需要为其添加刚体(Rigidbody),这样在执行操作时对象就会直接受到重力和碰撞影响。
这里简单介绍一下
-
运动学刚体(Kinematic Rigidbody)
用户启用isKinematic选项之后游戏物体将不会受到重力和摩擦力的影响,可以通过明确的动画或者脚本控制它的位置,可以与普通刚体(non-Kinematic Rigidbody)交互 - 静态碰撞组件(Static Collider)
具有碰撞体(Collider)而不是刚体(Rigidbody)的物体,保持静态,通过形状生成碰撞机,同时可以使用网格生成Collider(Mesh Collider) - 角色控制器(Character Controller)
类人角色控制器,可以是第三人称主角色,或者第一人称视角的射击者或者任何的敌人,Character Controller 执行的碰撞检测可以确保角色沿墙壁滑动,走上,走下阶梯。
本质上是非物理性的。
使用刚体控制一个子弹的飞行
public class fly : MonoBehaviour {
Vector3 fwd;
//获取指定一个物体的方向向量
void Start () {
fwd = transform.TransformDirection (Vector3.forward);
}
// 在这个方向上面加上一个向前的力
void Update () {
GetComponent<Rigidbody> ().AddForce (fwd * 100);
}
}