コード例 #1
0
    private void Start()
    {
        playerCollider = player.GetComponent <ObjectCollider>();

        frasesObj.Add("Poça", new List <string> {
            "O chão está muito escorregadio, você não consegue passar", "Você usou a camiseta para secar o chão"
        });
        frasesObj.Add("Madeira", new List <string> {
            "A escada está bloqueada", "Você usou o pé de cabra para quebrar as tábuas"
        });
        frasesObj.Add("Ratos", new List <string> {
            "Os ratos não de deixam passar, tente usar algo para afastá-los", "Você usou o lanche para afastar os ratos"
        });
        frasesObj.Add("Cadeado", new List <string> {
            "A porta está trancada", "Você usou a chave para abrir a porta"
        });
        frasesObj.Add("Vidro", new List <string> {
            "O vidro está rachado, será que você consegue quebrá-lo?", "Você usou o taco de beisebol para quebrar o vidro"
        });
        frasesObj.Add("Porta eletrica", new List <string> {
            "Você não possui os items necessários", "A trava elétrica não funciona sem eletricidade", "A trava elétrica não destrava sem o cartão", "Você usou o cartão do funcionário para abrir a porta"
        });
        for (int i = 0; i < itenList.Count; i++)
        {
            if (playerCollider.objectList.Contains(itenList[i].name) && itenList[i].name != "Cartao de funcionario")
            {
                this.gameObject.SetActive(false);
            }
        }
    }
コード例 #2
0
ファイル: ActorBase.cs プロジェクト: v-star0719/U3D_MiniDNF
    //useConfAtt是否使用配表的属性
    public void Init(int actorID, int actorLv, bool useConfAtt, EmActorFaction _actorFaction, EmActorType _actorType)
    {
        actorConf    = DBActorAttributeTable.GetRecord(actorID);
        actorFaction = _actorFaction;
        actorType    = _actorType;

        if (useConfAtt)
        {
            orgAttribute = TqmDatabase.CreateActorAttributeData(actorConf, actorLv);
        }
        else
        {
            orgAttribute = ActorAttributeDataCollection.GetActorAttributeData(actorID);
        }
        curAttribute = TqmDatabase.CloneActorAttributeData(orgAttribute);

        objectbase         = gameObject.GetComponent <ObjectBase>();
        objectcollider     = gameObject.GetComponent <ObjectCollider>();
        audioSource        = gameObject.AddComponent <AudioSource>();
        objectbase.x2dAnim = ResourceLoader.GetX2dAniamtion(actorConf.animationName, transform);

        foreach (int i in actorConf.skillIdList)
        {
            activeSkillList.Add(skillStateManager.GetSkillState(i));
        }

        objectcollider.size = actorConf.size;

        ChangeStatus(EmActorStatus.Idle);
    }
コード例 #3
0
 /// <summary>
 /// Initialize player controller
 /// </summary>
 public override void Start()
 {
     _player      = ParentGameObject as Player;
     _keyObserver = _player.GetComponent <KeyObserver>();
     _transform   = _player.GetComponent <Transform>();
     _collider    = _player.GetComponent <ObjectCollider>();
     _rndr        = new Render();
 }
コード例 #4
0
 public void OnEnterCollier(ObjectCollider target)
 {
     if (target.name.Contains("Gate"))
     {
         SceneManagerBattle battle = GameMain.curSceneManager as SceneManagerBattle;
         battle.OnPlayerEnterDoor();
     }
 }
コード例 #5
0
 public static void UnRegist(ObjectCollider c)
 {
     if (colliderList.Remove(c))
     {
         //Debug.Log("colliderList.count = " + colliderList.Count);
     }
     else
     {
         Debug.LogError(c.name + " is not existed");
     }
 }
コード例 #6
0
    public bool RemoveFromCollisionObjectList(ObjectCollider oc)
    {
        int i = collisionObjectList.IndexOf(oc);

        if (i >= 0)
        {
            collisionObjectList.RemoveAt(i);
            return(true);
        }
        return(false);
    }
コード例 #7
0
    public bool AddToCollisionObjectList(ObjectCollider oc)
    {
        int i = collisionObjectList.IndexOf(oc);

        if (i < 0)
        {
            collisionObjectList.Add(oc);
            return(true);
        }
        return(false);
    }
コード例 #8
0
 public static void Regist(ObjectCollider c)
 {
     if (colliderList.Find(c) == null)
     {
         colliderList.AddLast(c);
         //Debug.Log("colliderList.count = " + colliderList.Count);
     }
     else
     {
         Debug.LogError(c.name + " is alread existed");
     }
 }
コード例 #9
0
    public void Update_Pos()
    {
        Vector3        pos      = Vector3.zero;
        ObjectCollider collider = realObject.GetComponent <ObjectCollider>();

        if (collider != null)
        {
            pos = collider.realPos;
        }
        else
        {
            pos = realObject.realPos;
        }
        pos.x += ThreeDMirrorManager.MIRROR_OFFSET;        //平移到镜像所在区域

        transform.position = pos;
    }
コード例 #10
0
    public void UpdateSize()
    {
        ObjectCollider collider = realObject.GetComponent <ObjectCollider>();
        Vector3        size     = Vector3.zero;

        if (collider == null)
        {
            size = new Vector3(5, 5, 5);
        }
        else if (collider.colliderType == EmObjectColliderType.Box)
        {
            size = collider.size;
        }
        else if (collider.colliderType == EmObjectColliderType.Sphere)
        {
            size = new Vector3(collider.radius, collider.radius, collider.radius);
        }
        transform.localScale = size;
    }
コード例 #11
0
    //触发器不参与判断,返回false
    public static bool IsInCollision(ObjectBase ob)
    {
        ObjectCollider c = ob.GetComponent <ObjectCollider>();

        if (c == null)
        {
            return(false);
        }

        LinkedListNode <ObjectCollider> node = colliderList.First;

        while (node != null)
        {
            if (node.Value != c && !node.Value.isTrriger)           //不要和自己比较
            {
                if (IsCollision(c, node.Value))
                {
                    return(true);
                }
            }
            node = node.Next;
        }
        return(false);
    }
コード例 #12
0
 //需要统一到世界坐标下处理,size也要受scale影响
 private static bool IsCollision(ObjectCollider c1, ObjectCollider c2)
 {
     return(IsCollision(c1.realPos, c1.size, c2.realPos, c2.size));
 }
コード例 #13
0
    public static bool MoveWithCollision(ObjectBase ob, Vector3 newPos)
    {
        if (colliderList.Count == 0)
        {
            return(true);
        }

        ObjectCollider c = ob.GetComponent <ObjectCollider>();

        if (c == null)
        {
            return(false);
        }

        //对所有物体进行碰撞判断
        Vector3 oldPos = ob.realPos;

        Vector3[] moveSignArray = new Vector3[colliderList.Count];        //xyz:0表示这个方向不会碰撞,1表示会碰撞
        LinkedListNode <ObjectCollider> node1 = colliderList.First;
        int i = -1;

        while (node1 != null)
        {
            i++;
            if (node1.Value.gameObject.layer != LayerMask.NameToLayer("Barrier"))
            {
                node1 = node1.Next;
                continue;
            }
            if (node1.Value == c)
            {
                node1 = node1.Next;
                continue;
            }

            Vector3 sign = moveSignArray[i];
            Vector3 t    = oldPos;
            t.x = newPos.x;
            if (IsCollision(t, c.size, node1.Value.realPos, node1.Value.size))
            {
                sign.x = 1;
            }

            t.x = oldPos.x;
            t.y = newPos.y;
            if (IsCollision(t, c.size, node1.Value.realPos, node1.Value.size))
            {
                sign.y = 1;
            }

            t.y = oldPos.y;
            t.z = newPos.z;
            if (IsCollision(t, c.size, node1.Value.realPos, node1.Value.size))
            {
                sign.z = 1;
            }

            node1 = node1.Next;
        }
        Debug.Log(i);

        //确定最终可以移动至的位置
        //如果所有的x都为0,说明x是可以移动的
        //for()


        return(false);
    }
コード例 #14
0
 public void EnterCollier(ObjectCollider target)
 {
     objectBase.SendMessage("OnEnterCollier", target, SendMessageOptions.DontRequireReceiver);
 }
コード例 #15
0
 /// <summary>
 /// Get information of parent game object
 /// </summary>
 public override void Start()
 {
     _parent    = ParentGameObject as Enemy;
     _transform = _parent.GetComponent <Transform>();
     _collider  = _parent.GetComponent <ObjectCollider>();
 }