一.创建并绑定对象
在Project模块,Assets>>Script区域右键,Create>>C# Script,选中对象,把代码文件拖给选中对象。
二.常用方法及注意事项
1.绑定对象
- GameObject对象绑定 (例如可以从获取的对象上创建子对象)
挂载对象是挂载到Transform下
[Tooltip("子弹对象")]
public GameObject zidan;
[Tooltip("子弹组")]
public Transform zidanGroup;
void BeginFire()
{
GameObject obj = Instantiate(zidan, zidanGroup);
}
2.位置移动(如前进、后退、向左、向右)
- 模型的+Z方向要设置为前进方向,所以往前推进Z轴即可
[Tooltip("前进速度")]
public float zSpeed = 10;
void Update()
{
float dz = zSpeed * Time.deltaTime;
this.transform.Translate(0, 0, dz, Space.Self);
}
3.角度旋转(如射击的炮头方向)
- 官网不建议直接操作Rotation,所以一般使用欧拉角EulerAngles
[Tooltip("炮管,用于控制炮管方向")]
public Transform paoGuan
void Update()
{
if (Input.GetKeyDown(KeyCode.W))
{
//向上旋转,沿x轴旋转eularAngles
Vector3 current = paoGuan.eulerAngles
current.x -= angle
paoGuan.eulerAngles = current
}
if (Input.GetKeyDown(KeyCode.A))
{
//向左旋转
Vector3 current = paoGuan.eulerAngles
current.y -= angle
paoGuan.eulerAngles = current
}
}
4.触发器
void Start()
{
Invoke("Destroy", 2);
}
void Destroy()
{
Destroy(gameObject);
}
void Start()
{
//3s创建一颗子弹
InvokeRepeating("BeginFire", 0.1f, 0.3f)
}
void BeginFire()
{
//创建子弹
GameObject obj = Instantiate(zidan, zidanGroup)
//子弹位置
obj.transform.position = zidanPosition.position
//子弹方向
obj.transform.eulerAngles = zidanPosition.parent.eulerAngles
//子弹脚本
MainZiDan zidanScript = obj.GetComponent<MainZiDan>()
zidanScript.speed = zidanSpeed
zidanScript.lifeTime = lifeTime
}
5.撞击事件
- 添加Collider(碰撞体)组件,碰撞会触发OnTriggerEnter方法
- Is Trigger:是否经过,会触发OnTriggerEnter方法
- 添加Rigidbody(刚体)组件

private void OnTriggerEnter(Collider other)
{
Debug.Log("子弹碰撞,other=" + other.name);
if (!other.name.StartsWith("怪兽"))
{
return;
}
Destroy(gameObject);
Destroy(other.gameObject);
}