此代码有什么问题?当我发射火箭时,它不会影响角色。
我曾经尝试过在其他地方寻找东西,但没有任何帮助。我已经获得了帮助,因此至少现在代码可以实际运行。
using UnityEngine;
using System.Collections;
public class Rocket : MonoBehaviour
{
//Public changable things
public float speed = 20.0f;
public float life = 5.0f;
public float explosionForce = 1.0f;
public float explosionRadius = 1.0f;
public bool isGrounded;
public Rigidbody rb;
// Use this for initialization
void Start()
{
Invoke("Kill", life);
}
// Update is called once per frame
void Update()
{
transform.position += transform.forward * speed * Time.deltaTime;
if (isGrounded)
{
Kill();
}
}
void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "Ground")
{
isGrounded = true;
}
}
//
void OnCollisionExit(Collision other)
{
if (other.gameObject.tag == "Ground")
{
isGrounded = false;
}
}
//Explosion code
void Kill()
{
Vector3 explosionCenterPosition = transform.position;
rb.AddExplosionForce(explosionForce, explosionCenterPosition, explosionRadius);
Destroy(gameObject);
}
}
我正在制作一款让您像TF2一样跳跃的游戏。它还应移动其他刚体,如下所示: https://www.jetbrains.com/help/clion/working-with-the-ide-features-from-command-line.html
我是团结的新手,不知道为什么这行不通。
答案 0 :(得分:0)
@bobshellby
您正在摧毁与施加爆炸力相同的框架中的火箭物体。所以在看到爆炸效果之前,火箭将被摧毁。
尝试使用协程作为kill函数,这样可以增加等待时间。
<?php
$data = array(
array('so','item 1','details 1','date 1','qty 1'),
array('so','item 2','details 2','date 2','qty 2'),
array(4 => 'details of 22'),
array('so','item 3','details 3','date 2','qty 3'),
array(4 => 'details of 33'),
);
foreach ($data as $key => $items)
{
$total_items = count($items);
if ($total_items == "1" && $items[4])
{
$previous_array_key = $key - 1;
$new_data[$previous_array_key]['D'] = $items[4];
}
else
{
$new_data[$key] = $items;
}
}
print_r($new_data);
?>
另一件事是,您在启动5秒后调用了kill功能,这会再次摧毁火箭。删除它,因为您已经在检查它是否在火箭上。