【发布时间】:2020-01-27 11:48:54
【问题描述】:
我尝试创建一个简单的脚本来使用 unity 3d 进行锻炼,但我遇到了这个问题。 在 void start 我创建了一个简单的 3d 球体,当我点击屏幕时,球体 应该在另一个对象(例如立方体)中变换。我尝试创建一个 Empty Game Object 并创建此脚本来更改对象,但是对于空对象,我无法将刚体用于生成的 3d 对象。我该如何解决这个问题?
我想让球体在我点击屏幕时变成立方体。
也许我应该在这个脚本中添加一个刚体?
这是我的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class creatorscriptFunzionante : MonoBehaviour
{
public int counter; //contatore per le forme da spawnare
//forme da spawnare
public GameObject sphereBase; //sfera iniziale
public GameObject sphere;
public GameObject cube;
public GameObject capsule;
private void Awake()
{
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
counter++;
Debug.Log(counter);
if (counter == 1)
{
Destroy(sphereBase);
Destroy(capsule);
sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphere.GetComponent<Renderer>().material.color = new Color(255, 0, 0); //color
}
if (counter == 2)
{
Destroy(sphere);
cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.GetComponent<Renderer>().material.color = new Color(0, 255, 0);
}
if (counter == 3)
{
Destroy(cube);
capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule);
capsule.GetComponent<Renderer>().material.color = new Color(0, 25, 230);
counter = 0;
}
}
}
}
【问题讨论】:
-
你的意思是你想让你的球体变成一个立方体吗?这不是一个简单的项目,如果你只是想交换它,当然.. 你的问题似乎与标题不相关,请检查你的问题并更清楚你的要求
-
执行该项目时会发生什么?还要通过设置它们的 transform.position 来确保新创建的图元处于正确的位置
-
@AlexGeorg 当我执行项目时,代码创建了一个球体,当我点击屏幕时,我的计数器增加,球体被破坏,立方体被创建。但是我需要为这些对象使用刚体,如果我在 EmptyGameObject 中设置刚体,则代码创建的 3dobject 没有刚体...
-
@BugFinder 对不起我的英语不好...是的,我想把球体变成一个立方体。
-
担心您还必须在脚本中添加刚体组件,因为图元没有刚体。还要确保你知道 BugFinder 所说的变形指的是什么:他的意思是使球体逐渐变成立方体的形状。