【发布时间】:2016-04-10 12:33:26
【问题描述】:
当我触摸子对象时出现问题(它是沙发上的枕头)。
collider.transform.name 总是返回父母的名字。我正在尝试更改所选对象的颜色。颜色更改脚本运行良好,只是它总是返回父级。
一个例子:我只想改变沙发上的枕头颜色,但它改变了沙发颜色而不是枕头。我是 Unity 的新手。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class objectSelect : MonoBehaviour {
public Text tex;
public Text tex2;
public Transform obj1;
public string rr;
void Start () {
}
void Update () {
Touch touch = Input.touches [0];
Vector3 pos = touch.position;
if (Input.touchCount > 0 && touch.phase == TouchPhase.Began) {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (pos);
Vector3 planePoint = ray.GetPoint(0.0f);
if (Physics.Raycast(ray,out hit))
{
obj1 = hit.transform;
tex.text = obj1.transform.gameObject.GetInstanceID().ToString();
tex2.text = hit.collider.transform.name;
RR=obj1.transform.gameObject.GetInstanceID().ToString();
}
}
}
public string getselectedObj() {
return obj1.transform.gameObject.GetInstanceID().ToString();
}
public string r() {
return "rrrrrR";
}
public string RR {
get {
return rr;
}
set {
rr = value;
}
}
}
【问题讨论】:
-
你必须在枕头上有一个单独的对撞机才能做到这一点。
-
我在沙发和枕头上安装了盒子对撞机
-
您能否发布一张沙发层次结构的屏幕截图并突出显示您希望射线击中的对象?
-
添加了屏幕截图。如果用户触摸沙发我想打沙发,如果用户触摸枕头我想选择枕头
-
我要说的是,Unity Answers 是一个更适合解决 Unity 相关问题的网站。
标签: unity3d scripting monodevelop