我正在创建一个水平侧滚动射击游戏,我计划在移动设备上发布。如何设置船只:
船不得能够穿越障碍物。
我创建了一个自定义角色控制器,可以根据速度调整位置。我无法弄清楚如何检测碰撞并避免穿过障碍物。必须有一种更简单的方法来实现这个简单的要求。
注意:为了澄清,相机跟随船只,它不会自动滚动。玩家可以通过释放输入按钮来停止发射。
答案 0 :(得分:1)
首先,请尝试确保您已为障碍物和角色控制器添加了collider组件。这应该足以阻止你的船穿过障碍物。
答案 1 :(得分:0)
我正在存储我自己的velocity
向量,然后我使用transform.Translate
进行应用。这显然忽略了任何碰撞检测,并且需要自定义碰撞检测实现。
相反,我发现Rigidbody
组件包含自己的velocity
变量。该速度值可以很容易地改变,并且物体将自动平移并与障碍物碰撞。这是一个例子:
using UnityEngine;
using System.Collections;
public class CharacterController : MonoBehaviour {
public Vector2 maximumSpeed = new Vector2(1.0f, 1.0f);
void Start() {
}
void Update() {
Rigidbody rigidbody = GetComponent<Rigidbody>();
Vector2 velocity = new Vector2();
velocity.x = Input.GetAxis("Horizontal") * maximumSpeed.x;
velocity.y = Input.GetAxis("Vertical") * maximumSpeed.y;
rigidbody.velocity = velocity;
}
}
这看起来效果很好。评论将不胜感激: - )