首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹丸Y轴启动位置- 2.5D平台

弹丸Y轴启动位置- 2.5D平台
EN

Stack Overflow用户
提问于 2014-12-06 10:40:32
回答 1查看 120关注 0票数 2

我有这个问题,但我解决不了。我已经试着在网上搜索了,但什么也没找到。“射弹产卵”就在我的角色旁边。当我点击鼠标左键时,弹丸开始朝前射(例如,在Z轴上,以20的速度),但是有一个问题让我很生气。有时它从正确的地方开始,有时在每一次点击下和下开始。

代码语言:javascript
复制
public Rigidbody projectile;
public float speed = 20;

private Transform spawnPoint;
private int SPAWN_DISTANCE = 1;

void Awake()
{
    spawnPoint = transform.Find("SpawnPoint");
}

void Update ()
{   
    //
        if (Input.GetButtonDown("Fire1"))
        {
            atkSpeed = 0.2f;
            Shoot(projectile);
            attackTime = atkSpeed;
            chargeLevel = 0;
        }
    //

}

void Shoot(Rigidbody proj){
        Rigidbody _projBody = Instantiate(proj, spawnPoint.position + SPAWN_DISTANCE * transform.forward, transform.rotation) as Rigidbody;
        _projBody.velocity = transform.TransformDirection(new Vector3(0, 0,speed));
}

正在发生的事情的视频:https://www.youtube.com/watch?v=GLgrfl2zU9w

编辑:我昨天解决了自己的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-06 22:40:22

把一个空的GameObject放在你想要的弹丸产生的地方。在开火的角色内部筑巢。

那就去找SpawnPoint

代码语言:javascript
复制
private Transform spawnPoint;
private int SPAWN_DISTANCE = 1;

void Awake()
{
    spawnPoint = transform.Find("SpawnPoint");
}

也要改变你的拍摄方式。

代码语言:javascript
复制
void Shoot()
{
    Rigidbody _projBody = Instantiate(projectile, spawnPoint.position + SPAWN_DISTANCE * transform.forward, transform.rotation) as Rigidbody;
    _projBody.velocity = transform.TransformDirection(new Vector3(0, 0,speed));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27330757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档