A little help with instantiating prefabs with reference to SO attached
Ill try to be as clear as possible on whats going on. I'm hoping its something simple.
So I'm trying to get the stats from attached asset created from an SO(Item).
I want to change the player stats(PlayerStats) depending on the weapon stats(itemStats).
In order to not have the stats updated if the item is, for example, on the ground, I want to find out if its parent is the right hand(or whatever) before applying the stats.
however, when i pick it up, it essentially is destroyed from the scene and instantiated in the hand, but it seems to no longer be this same object, even though both are from the same prefab.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Weapon : MonoBehaviour
{
public Item itemStats;
private PlayerStats _playerStats;
private Animator _anim;
private GameObject _player;
private void Start()
{
_playerStats = GameObject.FindWithTag("Player").GetComponent<PlayerStats>();
_anim = GameObject.FindWithTag("RightHand").GetComponent<Animator>();
_player = GameObject.FindWithTag("Player").GetComponent<GameObject>();
}
void Update()
{
print("root is" + transform.root);//printing root to console to see whats going on
if (transform.root == _player)//checking if root is player,
{
SetPlayerStats();
print("in right hand");
}
}
void SetPlayerStats()
{
_playerStats.attackPower += itemStats.itemAp;
_playerStats.attackRange += itemStats.itemAttackRange;
_playerStats.defense += itemStats.itemDef;
_playerStats.healthPoints += itemStats.itemHp;
_playerStats.spellPower += itemStats.itemSp;
_anim.speed = itemStats.itemAttackSpeed / 2;
}
private void OnTriggerEnter(Collider other)
{
if (other.tag == "Enemy")//this works even after instantiating in my hand
{
print("you done " + _playerStats.attackPower + " damage");
}
}
}
Your answer
Follow this Question
Related Questions
How to convert keyboard inputs to Circle Pad with n3ds 0 Answers
Keep an object perpendicular to the surface it collides with and parallel to the floor 0 Answers
How to make Text in canvas disappear on keypress? 2 Answers
How do i Instantiate sub-Points with in Multiple Points?? 0 Answers
how to add sprites name in code ? 0 Answers