㈠ 请问如下意思的Unity C#代码如何写
逻辑还是挺简单的,唯一注意的是新版本的unity用的VideoClip播放视频
代码就俩
public class MoveObjCtrl : MonoBehaviour
{
void OnCollisionEnter(Collision collision)
{
string tags = collision.collider.tag;
if (tags == "A")
{
Debug.Log(Time.frameCount + ": " + collision.collider);
Main.Instance.PlayMovie(gameObject, collision.collider.gameObject);
}
else if(tags == "B")
{
}
}
}
这是可移动的碰撞物体上的代码,动态添加
主代码如下
public class Main : MonoBehaviour
{
public static Main Instance = null;
public MoveObjCtrl moveObj = null;
public GameObject boom = null;
public VideoClip videoClip;
void Start()
{
Instance = this;
videoClip = Resources.Load("movie") as VideoClip;
boom = Resources.Load("boom") as GameObject;
GameObject mobj = Instantiate(Resources.Load("moveObj")) as GameObject;
moveObj = mobj.AddComponent<MoveObjCtrl>();
}
void Update()
{
//test
if (moveObj == null)
return;
if(Input.GetKey(KeyCode.W))
{
moveObj.transform.Translate(Vector3.forward*0.1f);
}
if (Input.GetKey(KeyCode.S))
{
moveObj.transform.Translate(Vector3.back * 0.1f);
}
}
public void PlayMovie(GameObject hitObj, GameObject beHitObj)
{
Destroy(hitObj);
Destroy(beHitObj);
GameObject movieobj = Instantiate(boom, beHitObj.transform.position, Quaternion.identity);
var videoPlayer = movieobj.AddComponent<VideoPlayer>();
var audioSource = movieobj.AddComponent<AudioSource>();
videoPlayer.playOnAwake = true;
videoPlayer.clip = videoClip;
videoPlayer.renderMode = VideoRenderMode.MaterialOverride;
videoPlayer.targetMaterialRenderer = movieobj.GetComponent<Renderer>();
videoPlayer.targetMaterialProperty = "_MainTex";
videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource;
videoPlayer.SetTargetAudioSource(0, audioSource);
Destroy(movieobj, (float)videoClip.length);
}
}
需要工程代码,可以加好友
㈡ unity3d破解版会追究版权吗
应该会吧。
其实你可以使用免费版。
免费版开发游戏只有盈利到一定程度才会收钱。
新手自学,未必正确。
㈢ unity对于控件添加必须写硬代码而不能直接添加吗
方法如下:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("PreRevDate0", typeof(decimal)));
DataColumn col = new DataColumn();
col.ColumnName = "PreRevDate1";
col.Expression = "ABS(Convert.ToInt32(PreRevDate0))";
col.DataType = typeof(decimal);
dt.Columns.Add(col);
DataRow dr = dt.NewRow();
dr["PreRevDate0"] = -1;
dt.Rows.Add(dr);
㈣ 修改unity3d自带的代码在发布游戏时会不会有版权问题(如第一人称控制器之类的)
可以用的,但是如果用的Unity本身就是破解版的,这个就不好说了,另外如果利用Unity年盈利超过10万美元,需要向unity付费或者购买正版
㈤ ugui如何用代码给slider下的onValueChanged属性添加自己写的一个方法
在uislider里面挂个共有变量public UILable label在值改变的函数里面。label.text = val。即可
㈥ Unity中如何给游戏物体通过代码添加组件
gameObject.AddComponent<YourComponent>();
或者
gameObject.AddComponent("YourComponent");
㈦ u3d代码给物体添加texture
估计你用的c#脚本吧,那样你的脚本的名字必须和脚本中类的名字相同才可以,还有脚本不能有错误,才能添加!希望回答能给你带来帮助,如果还又不明白的地方请追问
你的采纳是我前进的动力答题不易互相理解
㈧ Unity3D除了在编辑器里,怎么用代码给一个Texture类型的变量赋值
=======================================
比如上述代码: public float power = 6000f; 如果这个赋值是在声明时赋值的, 也就不是放在任何函数中重新赋值的话, 无论如果在编辑器中修改这个值, 并运行多少次, Inspector面板中的对应属性仅仅显示你在第一次添加这个脚本时, 所识别出来的第一个值(比如说此时是6000f, 添加后面板中显示是6000f, 然后我通过编辑器修改6000f 至1000f, 再运行程序, 发现面板中始终是6000f,并不会同步更新, 你试试你的是否也是这样.)
上例中我之所以放在start中,是因为,在重新运行程序的时候,只有这种方法可以确保自己的修改值被应用. 再不就只能在面板中手动输入修改值了.
㈨ unity3D5.0版本中给一个物体添加力的java类代码是什么
类似
void FixedUpdate() {
rigidbody.AddForce(Vector3.up * 10);
}
具体查看官脚本手册
㈩ unity3d怎么给组件添加脚本
组件就是靠添加脚本实现的,你说的是给对象添加脚本吧。点击inspector下面有个AddComponet.