1. //生成的时候设置旋转角度为预制体的默认角度,并关闭collider,可确保子弹为水平方向
GameObject bullet=(GameObject)Instantiate(bulletNormal, bulletRootPoint.position,bulletNormal.transform.rotation);
重用时,子弹的位置最好在子弹上挂载的脚本上进行设置,速度用rigidbody 进行设置(rigidBody 慎用,会出现意料之外的问题),用transform
tempBullet = BulletManager.instance.enemyBullets[i];
enemyNor = tempBullet.GetComponent<EnemyBulletNormal>();
if (enemyNor.bulletState == EnemyNormalBulletState.enable)
{
//设置子弹状态为不可用
enemyNor.bulletState = EnemyNormalBulletState.disable;
enemyNor.SetPosition(targetPos,bulletSpeed);
enemyNor.GetComponent<Rigidbody>().velocity = transform.TransformDirection(Vector3.forward * bulletSpeed);
break;
}
2.添加Rigidbody 组件,在发生碰撞后,游戏对象自己不能停止移动,,
解决方法:Rigidbody 组件中Constranints对游戏对象的 Y轴 旋转 进行限制,,,增大阻力Drag
3.方法提示快捷键 Ctrl+shift+Q
4.监视面板中显示的 rotation 是 每个轴旋转的 实际角度
//eulerAngles 0-360 旋转的角度
//rotation 四元数
if (transform.rotation.eulerAngles.y <= rotateMin || transform.rotation.eulerAngles.y >= rotateMax)
{
//transform.position = pos;
transform.rotation = rotation;
}
5.要 调节画布大小,需要设置 render mode 为 world 模式