コード例 #1
0
        public void AttachTo(IGameObject obj, Vector3 offset = default(Vector3))
        {
            AssertNotDisposed();

            if (obj == null)
            {
                throw new ArgumentNullException(nameof(obj));
            }

            if (!(obj is IIdentifiable))
            {
                throw new ArgumentException("obj must be IIdentifiable");
            }

            var playerid = BasePlayer.InvalidId;
            var objectid = ((IIdentifiable)obj).Id;
            var type     = StreamerObjectType.Global;

            if (obj is IOwnable <BasePlayer> )
            {
                playerid = (obj as IOwnable <BasePlayer>).Owner.Id;
            }
            if (obj is PlayerObject)
            {
                type = StreamerObjectType.Player;
            }
            if (obj is DynamicObject)
            {
                type = StreamerObjectType.Dynamic;
            }

            Internal.AttachDynamicAreaToObject(Id, objectid, (int)type, playerid, offset.X, offset.Y, offset.Z);
        }