Unity脚本开发之对象的基本操作

本文介绍了Unity中游戏对象间的消息传递方法及其实现过程,并演示了如何通过代码克隆游戏对象来快速创建多个相同的实体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、对象之间发送消息

有时候在游戏场景中游戏对象与游戏对象之间需要相互通信以实现对象之间的互动,在GameObject类有一个方法实现了对象与对象之间的通信。

SendMessage(string methodName, //指定接受消息的对象的脚本中一个叫mentodName的函数处理这个函数
[DefaultValue("null")] object value, //发送的消息参数

[DefaultValue("SendMessageOptions.RequireReceiver")] SendMessageOptions options);//设置接受消息的对象是否必须接受消息

列如:

//发送消息对象绑定的的脚本组件
using UnityEngine;
using System.Collections;

public class SeddMesssage : MonoBehaviour {

//定义接受消息的对象
    private GameObject reciver;
    void Start () {
        reciver = GameObject.FindGameObjectWithTag("123");
        //向接受消息的对象发送一个消息
        reciver.SendMessage("Messagr", 1000, SendMessageOptions.DontRequireReceiver);
    }
}


//接受消息对象绑定的脚本

using UnityEngine;
using System.Collections;

public class Cubel : MonoBehaviour {

  void Messagr(int mun)
    {
        Debug.Log("接收到的消息为 " + mun);
    }

运行结果:

二、克隆游戏对象

在游戏场景中有很多的敌人都是相同的属性,我们可以将它们制作成一个预制体,然后在代码中通过克隆就可以创建无数个相同的游戏对象。

//参数为需要克隆的物体
 static T Instantiate<T>(T original) where T : Object;

列如:

using UnityEngine;
using System.Collections;

public class KeLongTest : MonoBehaviour {
   public GameObject prefsl;

  void OnGUI()
    {
       if(GUILayout.Button("克隆物体"))
        {
            int s = Random.Range(0, 20);
            GameObject ss = GameObject.Instantiate(prefsl) as GameObject;
            ss.transform.position += new Vector3(s, s, s);
        }

    }
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值